无法将我自己的 SMS 应用程序设置为默认值。任何建议如何解决它? [复制]

Posted

技术标签:

【中文标题】无法将我自己的 SMS 应用程序设置为默认值。任何建议如何解决它? [复制]【英文标题】:Can not set my own SMS app as default. Any suggestion how to solve it? [duplicate] 【发布时间】:2020-02-08 01:32:34 【问题描述】:

我编写了一个简单的 SMS 应用程序,用于测试目的。 意图过滤器如下所示:

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

            <category android:name="android.intent.category.APP_MESSAGING" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.SENDTO" />
            <category android:name="android.intent.category.DEFAULT" />  <!-- "android.intent.category.DEFAULT"-->
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="sms" />
            <data android:scheme="smsto" />
        </intent-filter>


        <!-- Sends text to someone .This will enable any Text Share functionality-->
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>

但是,当我在手机上安装该应用程序时,转到设置->默认应用程序->消息我可以看到其他消息应用程序并选择其中哪些作为默认应用程序。 但我的应用在列表中不可见。为什么我的应用程序不可见?我想这与意图过滤器有关

【问题讨论】:

我的活动的意图过滤器与您提到的相同。所以对我来说,为什么它不起作用仍然是个谜 相同?并不真地。 :-) 此外,您还缺少其他几个必需的元素,因为那里的答案表明您必须提供。 Anyhoo,你显然已经明白了。干杯! 【参考方案1】:

我通过根据以下修改我的 AndroidManifest 文件来解决它

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">
    <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="28"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>
    <uses-permission android:name="android.permission.WRITE_SMS"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <receiver
            android:name=".MMSReceiver"
            android:enabled="true"
            android:permission="android.permission.BROADCAST_WAP_PUSH">
            <intent-filter>
                <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
                <data android:mimeType="application/vnd.wap.mms-message" />
            </intent-filter>"></receiver>
        <receiver
            android:name=".SMSReceiver"
            android:permission="android.permission.BROADCAST_SMS">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_DELIVER" />
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>


        <service
            android:name=".SmsService"
            android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
            android:exported="true" >
            <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=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.APP_MESSAGING"/>
        </intent-filter>
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
            <action android:name="android.intent.action.VIEW"/>
            <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" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="android.intent.action.SENDTO" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="mms" />
            <data android:scheme="mmsto" />
        </intent-filter>

        </activity>
    </application>
    enter code here

</manifest>

见https://android-developers.googleblog.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html

【讨论】:

以上是关于无法将我自己的 SMS 应用程序设置为默认值。任何建议如何解决它? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

无法将路径“stats”的默认值设置为猫鼬模式实例

我需要将我的 Apollo 客户端缓存设置为默认值

无法以编程方式删除 SMS(默认 SMS 应用程序集)

与 Tigase 的 SMS 网关集成

在 Android 4.4.2 上更改 SMS 应用默认值

无法为 DependencyProperty 的 ICommand 设置默认值