gpt4 book ai didi

java - 为什么我收到了 Google Cloud Messaging 的 Intent.REGISTRATION

转载 作者:太空宇宙 更新时间:2023-11-04 13:56:01 25 4
gpt4 key购买 nike

我一直在尝试将 GCM 实现到我的 Android 应用程序中。但是,在遵循教程 http://developer.android.com/google/gcm/client.html 之后

尽管我期望一些数据,但我收到了带有额外“未注册”的意向类型注册。在应用程序启动时,我可以顺利注册并收到发送到我的服务器的注册 ID。我也使用亚马逊 sns。

BroadcastReceiver 和 IntentService 位于我的主包内的单独包中。

list :

package="my.main.package">

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.google.android.c2dm.permission.REGISTER" />

<uses-permission android:name="my.main.package.permission.C2D_MESSAGE" />
<permission android:name="my.main.package.permission.C2D_MESSAGE"
android:protectionLevel="signature" />

<receiver
android:name=".gcm.FDGcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.cd2m.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />

<category android:name="my.main.package" />
</intent-filter>
</receiver>
<service android:name=".gcm.FDGcmIntentService"/>

广播接收器:

public class FDGcmBroadcastReceiver extends WakefulBroadcastReceiver {
private static final String TAG = "FDGcmBroadcastReceiver";

@Override
public void onReceive(Context context, Intent intent) {

Log.i(TAG, "on receive, " + intent.getAction());

// Explicitly specify that GcmIntentService will handle the intent
ComponentName componentName = new ComponentName(context.getPackageName(), FDGcmIntentService.class.getName());
// Start the service, keeping the device awake while it is launching
startWakefulService(context, intent.setComponent(componentName));
setResultCode(Activity.RESULT_OK);
}
}

我做错了什么?

最佳答案

Eran的回答here回答您的问题。

在您链接的 GCM 文档的第 2 步中,com.google.android.c2dm.intent.REGISTRATION 不属于要包含在 list 文件中的 Intent 过滤器操作。

关于java - 为什么我收到了 Google Cloud Messaging 的 Intent.REGISTRATION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com