簡體   English   中英

Android Studio:我的短信應用不是默認短信應用的選項之一

[英]Android Studio: my sms app is not one of the options for default SMS app

我是 android 應用程序開發的新手,請多多包涵。

我已經制作了一個 SMS 應用程序,現在正試圖讓用戶選擇使該應用程序成為默認的 SMS 應用程序。 我讀過該應用程序應該能夠完成標准 SMS 應用程序可以做的所有事情,然后才能成為默認的 SMS 應用程序。 該應用程序可以實現的功能是:發送短信以及接收和閱讀傳入的短信。 我還制作了用於接收彩信的 broadcastreceivers 和用於快速響應的服務。 這些除了存在之外什么都不做,所以我的手機認為該應用程序能夠完成 SMS 應用程序應該做的所有事情。

我已經這樣做了,當用戶打開應用程序時,應用程序會檢查該應用程序是否是默認的 SMS 應用程序。 如果不是,它會詢問用戶是否要將應用設置為默認應用。 問題是我的應用程序沒有顯示為默認 SMS 應用程序的選項之一。 我認為這是因為手機不認為該應用程序能夠完成 SMS 應用程序需要做的所有事情,因此沒有將其顯示為選項之一。

這是我的清單文件:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.imessages">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RESPOND_VIA_MESSAGE" />
    <uses-permission android:name="android.permission.WAP_PUSH_DELIVER" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>


    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".editNameAndPhoto_activity" />

        <receiver
            android:name=".MySMSReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.BROADCAST_SMS">
            <intent-filter android:priority="999">
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
                <action android:name="android.permission.BROADCAST_SMS" />
            </intent-filter>
        </receiver>

        <receiver android:name=".MyMMSReceiver"
            android:exported="true"
            android:permission="android:permission.BROADCAST_WAP_PUSH">
            <intent-filter android:priority="999" >
                <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
                <data android:mimeType="application/vnd.wap.mms-message" />
            </intent-filter>
        </receiver>

        <service
            android:name=".QuickResponseService"
            android:exported="true"
            android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
                <data android:scheme="sms" />
                <data android:scheme="smsto" />
                <data android:scheme="mms" />
                <data android:scheme="mmsto" />
            </intent-filter>
        </service>

        <activity android:name=".Messages" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />

                <action android:name="android.intent.action.SEND" />
                <action android:name="android.intent.action.SENDTO" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="sms" />
                <data android:scheme="smsto" />
                <data android:scheme="mms" />
                <data android:scheme="mmsto" />
            </intent-filter>
        </activity>

        <activity android:name=".MainActivity" />

        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />
    </application>

</manifest>

我又是新手,所以我已經將所有內容都包含在清單中,這將使我的應用程序看起來像是一個 SMS 應用程序。 那里可能有一些不應該在那里的東西。 提前致謝。

所以我設法修復了它。 謝謝你的幫助。 我想我知道是什么修復了它(感謝 Pawel)這是我的解釋:

我刪除了exported = "true"enabled = "true"因為我發現它們是不相關的,至少對於我的項目是這樣。 這與問題無關。 我確實將.MySMSReceiverSMS_RECEIVED更改為SMS_DELIVER ,這是 Pawel 告訴我的。 我做到了,起初它不起作用,但現在它起作用了。 一定是我的錯誤對不起。 謝謝您的幫助! 很抱歉搞砸了你的回答帕維爾。

這是我的清單:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.imessages">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RESPOND_VIA_MESSAGE" />
    <uses-permission android:name="android.permission.WAP_PUSH_DELIVER" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>


    <application
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".editNameAndPhoto_activity" />

        <receiver
            android:name=".MySMSReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.BROADCAST_SMS">
            <intent-filter android:priority="999">
                <action android:name="android.provider.Telephony.SMS_DELIVER" />
                <action android:name="android.permission.BROADCAST_SMS" />
            </intent-filter>
        </receiver>

        <receiver android:name=".MyMMSReceiver"
            android:exported="true"
            android:permission="android.permission.BROADCAST_WAP_PUSH">
            <intent-filter android:priority="999" >
                <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
                <data android:mimeType="application/vnd.wap.mms-message" />
            </intent-filter>
        </receiver>

        <service
            android:name=".QuickResponseService"
            android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
            <intent-filter>
                <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="sms" />
                <data android:scheme="smsto" />
                <data android:scheme="mms" />
                <data android:scheme="mmsto" />
            </intent-filter>
        </service>

        <activity android:name=".Messages" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>

                <action android:name="android.intent.action.SEND" />
                <action android:name="android.intent.action.SENDTO" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="sms" />
                <data android:scheme="smsto" />
                <data android:scheme="mms" />
                <data android:scheme="mmsto" />
            </intent-filter>
        </activity>

        <activity android:name=".MainActivity" />

        <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />
    </application>

</manifest>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM