Java Android:BroadcastReceiver收到短信
我正在尝试使用广播接收器进行标题中的动作。 我创建了两个类: 1) 注册我的广播接收器的活动。 2) 扩展BroadcastReceive并重写onReceive方法的类 清单显然不包含任何错误,因此我决定将其发布在这里,同时使用两个类 谢谢你的关注。 P.S=我不是英国人,所以如果我的问题有语法错误,很抱歉;)Java Android:BroadcastReceiver收到短信,java,android,android-intent,broadcastreceiver,Java,Android,Android Intent,Broadcastreceiver,我正在尝试使用广播接收器进行标题中的动作。 我创建了两个类: 1) 注册我的广播接收器的活动。 2) 扩展BroadcastReceive并重写onReceive方法的类 清单显然不包含任何错误,因此我决定将其发布在这里,同时使用两个类 谢谢你的关注。 P.S=我不是英国人,所以如果我的问题有语法错误,很抱歉;) 公共类SMSBroadcastReceiver扩展广播接收器{ 私有静态最终字符串TAG=“SMSBroadcastReceiver”; @凌驾 公共void onReceive(上下
公共类SMSBroadcastReceiver扩展广播接收器{
私有静态最终字符串TAG=“SMSBroadcastReceiver”;
@凌驾
公共void onReceive(上下文、意图){
if(intent.getAction().equalsIgnoreCase(“收到短信”)){
Log.d(标签“Un messaggio ricevuto”);
Toast.makeText(上下文,“Un-messaggio ricevuto”,Toast.LENGTH_LONG.show();
}
}
}
公共类SMSyncHome扩展活动{
私人SMSBroadcastReceiver SMSreceiver;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
SMSreceiver=新SMSBroadcastReceiver();
registerReceiver(SMSreceiver,新的意向过滤器(“android.provider.Telephony.SMS_RECEIVED”);
}
}
您在广播接收器中匹配的操作应该是android.provider.Telephony.SMS\u RECEIVED
,而不仅仅是最后一部分。当我收到消息时,什么都不会发生。日志中没有任何内容,Toast也没有任何内容首先,您可以尝试删除registerReceiver()行,因为您只需要声明一次接收方,并且您已经在清单中这样做了。我不知道这两者是否有冲突我试过你说的话,但没有任何改变;)我的设备安装了一个非官方的ICS ROM,但没有任何定制。你可能想阅读,尤其是“注意事项”一章。谢谢,我已经修复了它,但已经什么也没发生。我也从活动中删除了registerReceiver方法。如果您删除整个if()块呢?完成,没有任何更改…我会对这件事发疯的。此外,我在官方文档中找不到任何指向该意图的链接。有吗?
public class SMSBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "SMSBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase("SMS_RECEIVED")){
Log.d(TAG, "Un messaggio ricevuto");
Toast.makeText(context, "Un messaggio ricevuto", Toast.LENGTH_LONG).show();
}
}
}
public class SMSyncHome extends Activity {
private SMSBroadcastReceiver SMSreceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SMSreceiver = new SMSBroadcastReceiver();
registerReceiver(SMSreceiver, new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.contervis.SMSync"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity android:name=".SMSyncHome"
android:label="@string/app_name">
<intent-filter >
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<receiver android:name=".SMSBroadcastReceiver" android:enabled="true">
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
</manifest>