我正在尝试捕获在电话上收到的SMS,但是当电话收到一条SMS消息时,不会调用“ onReceive”方法。这是我的代码:
我在标签“ application”内的“ AndroidManifest.xml”中声明了BroadcastReceiver:
<receiver android:name=".util.IncomingSmsReceiver"
android:exported="true">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
这是IncomingSmsReceiver.java
public class IncomingSmsReceiver extends BroadcastReceiver {
public static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive executed");
if (intent.getAction().equals(SMS_RECEIVED)) {
...
}
}
}
我正在使用Android 6的仿真器Google Nexus 5进行测试。当我在仿真器中发送短信(伪造)时,系统会显示一条通知,好像收到的通知非常好,我可以在带仿真器的默认应用程序中使用该通知。在Android Studio的logcat中,似乎没有您运行过方法onReceive
或内部编写的代码。我尝试更改优先级,尝试使用android:enabled="true"
,尝试使用registerReceiver
并且没有使其工作。有人知道我是否想念什么吗?
您是否正在使用默认的消息传递应用程序,该应用程序的“禁用其他应用程序”标志已启用?
请看这个:
“ android.provider.Telephony.SMS_RECEIVED”在我的设备上不起作用(HTC Wildfire)-如何调试?
编辑:
由于您使用的是Android 6,因此应使用新的权限模型。检查一下:http : //developer.android.com/training/permissions/requesting.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句