Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我会得到intent.REGISTRATION与谷歌云消息_Java_Android_Push Notification_Google Cloud Messaging - Fatal编程技术网

Java 为什么我会得到intent.REGISTRATION与谷歌云消息

Java 为什么我会得到intent.REGISTRATION与谷歌云消息,java,android,push-notification,google-cloud-messaging,Java,Android,Push Notification,Google Cloud Messaging,我一直在尝试在我的Android应用程序中实现GCM。但是,在遵循教程之后 我正在使用额外的“unregistered”进行意向类型注册,尽管我需要一些数据。 在应用程序开始时,我注册没有问题,并收到发送到我的服务器的注册id。我也使用亚马逊sns BroadcastReceiver和IntentService在我的主程序包内的单独程序包中 舱单: package="my.main.package"> <uses-permission android:name="android.p

我一直在尝试在我的Android应用程序中实现GCM。但是,在遵循教程之后

我正在使用额外的“unregistered”进行意向类型注册,尽管我需要一些数据。 在应用程序开始时,我注册没有问题,并收到发送到我的服务器的注册id。我也使用亚马逊sns

BroadcastReceiver和IntentService在我的主程序包内的单独程序包中

舱单:

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"/>
我做错了什么?

埃兰的回答回答了你的问题


在您链接的GCM文档的第2步中,
com.google.android.c2dm.intent.REGISTRATION
不在要包含在清单文件中的intent筛选器操作中。

似乎解决了问题。尽管我重新编写了与之相关的全部代码。谢谢
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);
    }
}