2

GCMを使用してアプリにプッシュ通知を入れようとしていました。電話GCMRegistrar.register(this, SENDER_ID)をかけましたが、エラーが発生しました。

私のマニフェストファイル:

   <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.salamworld"/>
        </intent-filter>
    </receiver>
    <service android:name=".GCMIntentService"/>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<permission android:name="my.package.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="my.package.permission.C2D_MESSAGE"/>
<uses-sdk android:minSdkVersion="8"/>

そして、ここにエラーがあります:

DEBUG / GCMBaseIntentService(423):登録エラー:ACCOUNT_MISSING

私のGCMIntentServiceクラス:

public class GCMIntentService extends GCMBaseIntentService{

    public GCMIntentService() {
        super();
    }

    @Override
    protected void onMessage(Context context, Intent intent) {
    }

    @Override
    protected void onError(Context context, String errorId) {
    }

    @Override
    protected void onRegistered(Context context, String registrationId) {
        Log.d("@R@", registrationId);
    }

    @Override
    protected void onUnregistered(Context context, String registrationId) {
    }
}
4

1 に答える 1

7

この例外は、デバイスにGoogleアカウントがない場合に発生します。

ACCOUNT_MISSING-電話にGoogleアカウントがありません。Androidアプリケーションは、ユーザーにアカウントマネージャーを開いてGoogleアカウントを追加するように要求する必要があります。デバイス側で修正します。

于 2012-07-20T04:43:07.937 に答える