java Android Studio:我的短信应用程序不是默认短信应用程序的选项之一
我是安卓应用程序开发新手,所以请容忍我
我已经制作了一个短信应用程序,现在正在尝试为用户提供将该应用程序设置为默认短信应用程序的选项。 我已经读到,在成为默认短信应用程序之前,该应用程序应该能够完成标准短信应用程序所能做的一切。 该应用程序可以实现的功能是:发送短信、接收和读取收到的短信。 我还制作了用于接收彩信的广播接收器和用于快速响应的服务。 这些都不做任何事情,但有,所以我的手机认为,该应用程序是一个短信应用程序应该做的一切能力
我已经做到了,当用户打开应用程序时,应用程序会检查该应用程序是否为默认短信应用程序。如果不是,它将询问用户是否希望将应用设置为默认。问题是我的应用程序没有显示为默认SMS应用程序的选项之一。 我认为这是因为手机不认为该应用程序能够完成SMS应用程序所需的所有功能,因此没有将其作为选项之一显示出来
这是我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
package="com.example.imessages">
<uses-permission 安卓:name="安卓.permission.INTERNET" />
<uses-permission 安卓:name="安卓.permission.SEND_SMS" />
<uses-permission 安卓:name="安卓.permission.RESPOND_VIA_MESSAGE" />
<uses-permission 安卓:name="安卓.permission.WAP_PUSH_DELIVER" />
<uses-permission 安卓:name="安卓.permission.RECEIVE_MMS" />
<uses-permission 安卓:name="安卓.permission.RECEIVE_SMS" />
<uses-permission 安卓:name="安卓.permission.READ_CONTACTS" />
<uses-permission 安卓:name="安卓.permission.READ_SMS" />
<uses-permission 安卓:name="安卓.permission.WRITE_SMS" />
<uses-permission 安卓:name="安卓.permission.RECEIVE_MMS" />
<uses-permission 安卓:name="安卓.permission.RECEIVE_BOOT_COMPLETED"/>
<application
安卓:allowBackup="false"
安卓:icon="@mipmap/ic_launcher"
安卓:label="@string/app_name"
安卓:roundIcon="@mipmap/ic_launcher_round"
安卓:supportsRtl="true"
安卓:theme="@style/AppTheme">
<activity 安卓:name=".editNameAndPhoto_activity" />
<receiver
安卓:name=".MySMSReceiver"
安卓:enabled="true"
安卓:exported="true"
安卓:permission="安卓.permission.BROADCAST_SMS">
<intent-filter 安卓:priority="999">
<action 安卓:name="安卓.provider.Telephony.SMS_RECEIVED" />
<action 安卓:name="安卓.permission.BROADCAST_SMS" />
</intent-filter>
</receiver>
<receiver 安卓:name=".MyMMSReceiver"
安卓:exported="true"
安卓:permission="安卓:permission.BROADCAST_WAP_PUSH">
<intent-filter 安卓:priority="999" >
<action 安卓:name="安卓.provider.Telephony.WAP_PUSH_DELIVER" />
<data 安卓:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<service
安卓:name=".QuickResponseService"
安卓:exported="true"
安卓:permission="安卓.permission.SEND_RESPOND_VIA_MESSAGE">
<intent-filter>
<category 安卓:name="安卓.intent.category.DEFAULT" />
<action 安卓:name="安卓.intent.action.RESPOND_VIA_MESSAGE" />
<data 安卓:scheme="sms" />
<data 安卓:scheme="smsto" />
<data 安卓:scheme="mms" />
<data 安卓:scheme="mmsto" />
</intent-filter>
</service>
<activity 安卓:name=".Messages" >
<intent-filter>
<action 安卓:name="安卓.intent.action.MAIN" />
<category 安卓:name="安卓.intent.category.LAUNCHER" />
<action 安卓:name="安卓.intent.action.SEND" />
<action 安卓:name="安卓.intent.action.SENDTO" />
<category 安卓:name="安卓.intent.category.DEFAULT" />
<category 安卓:name="安卓.intent.category.BROWSABLE" />
<data 安卓:scheme="sms" />
<data 安卓:scheme="smsto" />
<data 安卓:scheme="mms" />
<data 安卓:scheme="mmsto" />
</intent-filter>
</activity>
<activity 安卓:name=".MainActivity" />
<meta-data
安卓:name="preloaded_fonts"
安卓:resource="@array/preloaded_fonts" />
</application>
</manifest>
再一次,我是新手,所以我把所有东西都包含在清单中,让我的应用看起来像是短信应用。那里可能有一些不应该在那里的东西。 提前谢谢
# 1 楼答案
所以我设法把它修好了。 谢谢你的帮助。 我想我知道是什么修复了它(谢谢Pawel)以下是我的解释:
我删除了
exported = "true"
和enabled = "true"
,因为我发现它们是不相关的,至少对我的项目来说是这样。这与问题无关。 我确实把.MySMSReceiver
从SMS_RECEIVED
改成了SMS_DELIVER
,这是Pawel告诉我的。我做了,起初它不起作用,但现在它起作用了。一定是我的错对不起! 谢谢你的帮助!对不起,把你的答案弄糟了,波威尔这是我的舱单: