我正在尝试GCM
在我的应用中工作(在我们的工作时间发生变化时通知用户,或者当我们有任何促销活动时),但我在尝试时遇到错误Cannot resolve symbol 'GoogleCloudMessaging'
使用Google Cloud Messaging API。
我正在使用新发布的Android工作室IDE来编写代码。
这是我的GcmBroadcastReciever.java代码:
import android.R;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class GcmBroadcastReceiver extends BroadcastReceiver
{
static final String TAG = "GCMDemo";
public static final int NOTIFICATION_ID = 1;
private NotificationManager mNotificationManager;
Context ctx;
GoogleCloudMessaging gcm; // I get the error here
@Override
public void onReceive(Context context, Intent intent) {
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context); //error
ctx = context;
String messageType = gcm.getMessageType(intent); //cannot resolve method here
if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) { //error
sendNotification("Send error: " + intent.getExtras().toString());
} else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType)) { //error
sendNotification("Deleted messages on server: " +
intent.getExtras().toString());
} else {
sendNotification("Received: " + intent.getExtras().toString());
}
setResultCode(Activity.RESULT_OK);
}
// Put the GCM message into a notification and post it.
private void sendNotification(String msg) {
mNotificationManager = (NotificationManager)
ctx.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0,
new Intent(ctx, Activity.class), 0);
Toast.makeText(ctx, msg, Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:35)
以下部分将指导您完成设置GCM的过程 实现。在开始之前,请务必设置Google Play 服务SDK。 您需要此SDK才能使用GoogleCloudMessaging方法。严格来说,你唯一需要这个 API for上游(设备到云)消息传递,但它也提供了一个 建议简化注册API。
你有set up the Google Play Services SDK吗?
你必须:
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
库项目。安装Google Play服务SDK进行开发:
1. Launch the SDK Manager. - From Eclipse (with ADT), select Window > Android SDK Manager. - On Windows, double-click the SDK Manager.exe file at the root of the Android SDK directory. - On Mac or Linux, open a terminal and navigate to the tools/ directory in the Android SDK, then execute android sdk. 2. Install the Google Play services SDK. Scroll to the bottom of the package list, expand Extras, select Google Play services, and install it. The Google Play services SDK is saved in your Android SDK environment at <android-sdk>/extras/google/google_play_services/. 3. Install a compatible version of the Google APIs platform. If you want to test your app on the emulator, expand the directory for Android 4.2.2 (API 17) or a higher version, select Google APIs, and install it. Then create a new AVD with Google APIs as the platform target. Note: Only Android 4.2.2 and higher versions of the Google APIs platform include Google Play services.
答案 1 :(得分:10)
如果您使用的是Android Studio:
1)下载了Google Play SDK(使用SDK管理器):
2)不要忘记点击“使用Gradle文件同步项目”按钮
这对我有用。
答案 2 :(得分:6)
如果您使用的是Android Studio,请确保您拥有build.gradle
:
dependencies {
compile 'com.google.android.gms:play-services:7.8.0'
}
然后运行build
。
这对我有用。
答案 3 :(得分:4)
确保您在build.gradle&gt;上添加了依赖项。同步&gt;建设 - 清洁项目。
为我工作:)
答案 4 :(得分:3)
尝试清理项目。为我工作。
答案 5 :(得分:2)
您可能正在使用旧的教程,但GCMRegistrar是一个弃用的API类。
请改用GoogleCloudMessaging API。
选中此处以获取完整教程push notification using gcm