我有这个标准代码在用户第一次运行应用程序时运行:
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals(""))
{
GCMRegistrar.register(this, SENDER_ID);
}
else
{
Log.v(TAG, "Already registered");
}
并且 regId 始终为空,据我了解,这意味着设备未注册。
但是如何确保设备已注册?
谢谢!
编辑:
这是我关于云消息传递的清单部分:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.problemio"
android:versionCode="82"
android:versionName="2.2.82" >
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true"/>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="16"/>
<!-- <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="xx"/> -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Required permission to use in-app billing. -->
<uses-permission android:name="com.android.vending.BILLING" />
<permission android:name="com.problemio.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.problemio.permission.C2D_MESSAGE" />
<!-- App receives GCM messages. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomTheme"
android:name="MyApplication"
android:debuggable="true"
>
<!-- For Google Cloud Messaging -->
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.problemio" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" />
<!-- End of Google Cloud Messaging -->