Java Android:BroadcastReceiver收到短信

Java Android:BroadcastReceiver收到短信,java,android,android-intent,broadcastreceiver,Java,Android,Android Intent,Broadcastreceiver,我正在尝试使用广播接收器进行标题中的动作。 我创建了两个类: 1) 注册我的广播接收器的活动。 2) 扩展BroadcastReceive并重写onReceive方法的类 清单显然不包含任何错误,因此我决定将其发布在这里,同时使用两个类 谢谢你的关注。 P.S=我不是英国人,所以如果我的问题有语法错误,很抱歉;) 公共类SMSBroadcastReceiver扩展广播接收器{ 私有静态最终字符串TAG=“SMSBroadcastReceiver”; @凌驾 公共void onReceive(上下

我正在尝试使用广播接收器进行标题中的动作。 我创建了两个类: 1) 注册我的广播接收器的活动。 2) 扩展BroadcastReceive并重写onReceive方法的类

清单显然不包含任何错误,因此我决定将其发布在这里,同时使用两个类

谢谢你的关注。 P.S=我不是英国人,所以如果我的问题有语法错误,很抱歉;)

公共类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>