2

我正在尝试使用 SMS 广播接收器将消息自动读入 EditText。在我注册 BroadcastReceiver 时出现“预期表达式”错误

IntentFilter smsFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
this.registerReceiver(SMSReceiver, smsFilter); //Expression Expected error occurred here

解决了 :

我刚刚添加了新 this.registerReceiver(new SMSReceiver(), smsFilter);的而不是 this.registerReceiver(SMSReceiver, smsFilter);

我希望这可以帮助你。

4

2 回答 2

2

第一个参数应该new SMSReceiver()代替SMSReceiver@ρяσѕρєя K 的评论中提到的类名。

我宁愿建议在你的实例中实例化它,然后在和onCreate()中使用它registerReceiver()unregisterReceiver()

// in onCreate or globally
SMSReceiver smsReceiver= new SMSReceiver();  
...

// and then in onResume  
IntentFilter smsFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(smsReceiver, smsFilter);
....

// and in pause
unregisterReceiver(smsReceiver);
于 2016-02-23T13:48:48.243 回答
1

您是否在清单中添加了以下代码?

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS" />

如果没有,那么添加这个。

添加希望SMSReceiverBroadcastReceiver 的实例。如果没有,则创建 BroadcastReceiver 的实例

于 2015-12-14T06:18:20.923 回答