我对android应用程序开发还不熟悉,所以请耐心听我说。
我已经做了一个短信应用程序,现在正试图给用户的选择,使该应用程序的默认短信应用程序。我已经读到,该应用程序应该能够做的一切标准短信应用程序可以之前,它可以成为默认的短信应用程序。该应用程序的功能是:发送短信和接收和阅读收到的短信。我还制作了接收彩信的广播接收器和快速响应服务。这些没有做什么,但有这样的手机认为,该应用程序是一个短信应用程序应该做的一切能力。
我已经这样做了,当用户打开应用程序时,应用程序会检查应用程序是否是默认的短信应用程序。如果没有,它会询问用户是否需要将应用程序设置为默认值。问题是我的应用程序没有显示为默认短信应用程序的选项之一。我认为这是因为手机不认为该应用程序是一个短信应用程序需要做的一切能力,因此没有显示它作为一个选项。
这是我的清单文件:
<?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>
再次,我是新来的,所以我已经包括了绝对的一切到清单,这将使我的应用程序看起来像一个短信应用程序。里面可能有一些不该有的东西。提前谢谢。
1条答案
按热度按时间vmpqdwk31#
所以我设法修好了。谢谢你的帮助。我想我知道是什么把它修好了(谢谢pawel)下面是我的解释:
我移除了
exported = "true"
以及enabled = "true"
因为我发现他们是无关的,至少对我的项目来说。这与问题无关。我确实改变了主意.MySMSReceiver
从SMS_RECEIVED
至SMS_DELIVER
帕维尔告诉我的。我做了,一开始不管用,但现在管用了。一定是我弄错了对不起!谢谢你的帮助!很抱歉弄乱了你的答案。这是我的名单: