gpt4 book ai didi

android - GCM ACCOUNT_MISSING 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:59 24 4
gpt4 key购买 nike

如何获取registrationId?

我总是收到 ACCOUNT_MISSING 错误

主要 Activity


package com.example.gcm;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import com.google.android.gcm.GCMRegistrar;

public class MainActivity extends Activity {

private static final String SENDER_ID = "45552950387";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
GCMRegistrar.register(this, SENDER_ID);
Log.d("show", "Already registered1"+regId);
} else {
Log.d("show", "Already registered");
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}


}

GCMIntentService


package com.example.gcm;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.google.android.gcm.GCMBaseIntentService;

public class GCMIntentService extends GCMBaseIntentService {
private static final String TAG = "GCMIntentService";

public GCMIntentService() {
super("45552950387");
}

@Override
protected void onRegistered(Context context, String registrationId) {
Log.i(TAG, "Device registered: regId = " + registrationId);
}

@Override
protected void onUnregistered(Context context, String registrationId) {
Log.i(TAG, "Device unregistered");
}

@Override
protected void onMessage(Context context, Intent intent) {
Log.i(TAG, "Received message");
String a = intent.getStringExtra("A");
generateNotification(context, a);
}

@Override
protected void onDeletedMessages(Context context, int total) {
Log.i(TAG, "Received deleted messages notification");

}

@Override
public void onError(Context context, String errorId) {
Log.i(TAG, "Received error: " + errorId);

}

@Override
protected boolean onRecoverableError(Context context, String errorId) {
Log.i(TAG, "Received recoverable error: " + errorId);
return super.onRecoverableError(context, errorId);
}

private void generateNotification(Context context, String message) {

NotificationManager notificationManager = (NotificationManager) context
.getSystemService(NOTIFICATION_SERVICE);

Notification notification = new Notification();
notification.icon = R.drawable.ic_launcher;
notification.tickerText = "notification on status bar.";
notification.defaults = Notification.DEFAULT_ALL;
notification.setLatestEventInfo(context, "Title", message, null);
notificationManager.notify(0, notification);
}
}

AndroidManifest.xml


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gcm"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<permission android:name="com.example.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<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.example.gcm" />
</intent-filter>
</receiver>
<service android:name="com.example.gcm.GCMIntentService" />
</application>


这是我的 LogCat

08-08 13:54:19.844: D/dalvikvm(618): GC_EXPLICIT freed 45K, 49% free 2751K/5379K, external 1625K/2137K, paused 58ms
08-08 13:54:22.944: D/GCMRegistrar(618): resetting backoff for com.example.gcm
08-08 13:54:22.944: V/GCMRegistrar(618): Registering app com.example.gcm of senders 45552950387
08-08 13:54:22.994: D/show(618): Already registered1
08-08 13:54:23.224: V/GCMBroadcastReceiver(618): onReceive: com.google.android.c2dm.intent.REGISTRATION
08-08 13:54:23.224: V/GCMBroadcastReceiver(618): GCM IntentService class: com.example.gcm.GCMIntentService
08-08 13:54:23.224: V/GCMBaseIntentService(618): Acquiring wakelock
08-08 13:54:23.464: V/GCMBaseIntentService(618): Intent service name: GCMIntentService-45552950387-3
08-08 13:54:23.504: D/GCMBaseIntentService(618): handleRegistration: registrationId = null, error = ACCOUNT_MISSING, unregistered = null
08-08 13:54:23.504: D/GCMBaseIntentService(618): Registration error: ACCOUNT_MISSING
08-08 13:54:23.524: I/GCMIntentService(618): Received error: ACCOUNT_MISSING
08-08 13:54:23.524: V/GCMBaseIntentService(618): Releasing wakelock

我确定发件人 ID 是正确的,并且在项目类路径中导入 gcm.jar

最佳答案

手机上没有 Google 帐户时发生 ACCOUNT_MISSING 错误。

There is no Google account on the phone. The Android application should ask the user to open the account manager and add a Google account. Fix on the device side.



查看 here了解更多信息。

关于android - GCM ACCOUNT_MISSING 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866587/

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