嗨,我正在尝试捕获短信内容并在我的应用程序中使用,所以我制作了一个带有权限和清单的 BroadcastReceiver 但是当设备收到短信时,我的代码没有运行,这意味着 BroadcastReceiver 不会触发。我也查了很多这里内外的文章,有一些:
Android 短信接收器结果到主要活动 短信接收器不起作用
这是我的清单的一部分:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<application.
...
...
<receiver android:name="com.example.android.receiver.SmsReceiver"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
Run Code Online (Sandbox Code Playgroud)
这是我的接收器
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "SMS Received!", Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud)
我还尝试在 onCreate() 活动中动态注册接收器,但没有任何改变
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
intentFilter.setPriority(2147483647);
registerReceiver(new SmsReceiver(), intentFilter);
Run Code Online (Sandbox Code Playgroud)
有谁知道问题出在哪里?它应该只是 Toast 收到一条消息,这样我就可以继续工作,但接收器似乎甚至没有开火