我有一個使用C2DM的Android應用程序。我在主要活動中定義接收者(不在清單中)。我有這樣的事情:C2DM自動註銷
c2dmReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("com.google.android.c2dm.intent.REGISTRATION")) {
String registrationId = intent.getStringExtra("registration_id");
String error = intent.getStringExtra("error");
String unregistered = intent.getStringExtra("unregistered");
System.out.println("receiver registration: " + registrationId);
System.out.println("unregister aplicacion: " + unregistered);
if (registrationId != null){
saveConfig("key", registrationId);
postC2dm(registrationId);
}
}
else
if (action.equals("com.google.android.c2dm.intent.RECEIVE")){
final String payload = intent.getStringExtra("payload");
System.out.println("Package : " + intent.getPackage());
}
}
};
IntentFilter filtroReceiver = new IntentFilter("com.google.android.c2dm.intent.REGISTRATION");
filtroReceiver.addAction("com.google.android.c2dm.intent.RECEIVE");
filtroReceiver.addCategory("es.unizar.c2dm");
registerReceiver(c2dmReceiver,filtroReceiver,"com.google.android.c2dm.permission.SEND",null);
清單文件:
<uses-permission android:name="mypackage.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="com.google.android.c2dm.permission.SEND" />
我的問題是:當我收到過的意圖「com.google.c2dm.intent.RECEIVE」,「有效載荷」 ,我收到正確的數據「負載」,但我收到一個registrationId = null,我的類別未註冊(在「com.google.c2dm.intent.registration」操作中)。
出現是警告:
未授予權限com.google.android.c2dm.permission.SEND打包es.mypackage.es(的ProtectionLevel = 3個標誌= 0xbe46)
[DataMsgMdr]廣播意圖回調:結果=取消意圖{行爲= com.google.c2dm.intent.RECEIVE貓= es.mypackage.es(具有額外)
接收機包沒有找到,註銷應用es.mypackage.es發件人發送方@gm ...
謝謝。 此致敬禮。