我的应用程序读取传入的短信。我已经在 Manifest 中实现了接收器,添加了权限和接收器,但是当收到 SMS 时,我在 logcat 中收到以下消息。
12-29 13:25:00.081 2030-2044/? W/BroadcastQueue: Permission Denial: 从 com.android.phone (pid=5234, uid=1001) 广播 Intent { act=android.provider.Telephony.SMS_RECEIVED flg=0x8000010 (has extras) } 没有从 uid 10665 导出接收器 com.tatvic.vatsal.test_uninstall_tracking/com.tatvic.lib.uit.SmsReceiver
显现 :
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application
....>
<receiver android:name=".SmsReceiver"
android:exported="false">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
短信接收者:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION) && intent.getExtras() != null) {
Log.d("MessageReceived", "MessageReceived");
}
}
}
我在 Stackoverflow 上读过类似的帖子,但没有任何帮助。我已经在 Marshmallow OS 上对此进行了测试,并允许了 SMS 权限。
如何在我的应用程序中收到短信?
编辑:
当应用程序打开或在设置文件标签后exported = true
处于后台时,我可以在我的应用程序中接收短信。但是当应用程序关闭时,我在 logcat 中收到以下消息并且无法接收短信。receiver
Menifest
12-29 14:28:27.111 2030-2044/? I/ActivityManager:启动 proc 8428:com.tatvic.vatsal.test_uninstall_tracking/u0a666 用于广播 com.tatvic.vatsal.test_uninstall_tracking/com.tatvic.lib.uit.SmsReceiver