- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试让 GCM
在我的应用程序中运行(以在我们的营业时间更改或我们有任何促销 Activity 时通知用户),但我不断收到错误 无法解决尝试使用 Google Cloud Messaging API 时的符号“GoogleCloudMessaging”
。
我正在使用新发布的 Android Studio 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();
}
}
最佳答案
The sections below guide you through the process of setting up a GCM implementation. Before you start, make sure to set up the Google Play Services SDK. You need this SDK to use the GoogleCloudMessaging methods. Strictly speaking, the only thing you absolutely need this API for is upstream (device-to-cloud) messaging, but it also offers a streamlined registration API that is recommended.
你有没有set up the Google Play Services SDK ?
你必须:
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/
您的 Android 项目中的库项目。To install the Google Play services SDK for development:
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.
关于java - 无法解析符号 'GoogleCloudMessaging' GCM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16619450/
我正在尝试在我的项目中实现 gcm,因为我想制作设备到设备的消息传递应用程序 我在这里阅读 http://developer.android.com/google/gcm/client.html因为它
正如问题所说,如何找出 registration ID 何时执行?已在 GoogleCloudMessaging 中失效应用程序接口(interface)?我已经阅读了关于类似主题的几个问题的答案:D
我需要在我的应用中使用 GoogleCloudMessaging。我通过 Cocoapods 安装了它。当我添加这部分代码时: GLInstanceIDConfig *instanceIDConfig
我是世界上唯一遇到此问题的人。所以我认为我真的需要一位专家。 我正在使用 Eclipse 和 Android 开发工具。 我已将所有相关库添加到项目中 我已经添加了 gcm.jar GoogleClo
我正在使用 Google Cloud Messaging在我的应用程序中借助 Urban Airship。 Urban Airship 正在向 GCM 注册,我的代码正在接收 GCM 消息。 我的问题
我试图在 Android 应用程序中实现推送通知,我发现了很多示例,但它们都导入了 com.google.android.gcm - 一个已被弃用的包 (据推测)它的功能包含在 GooglePlayS
我尝试从 gcm.jar 更新以从 google-play-services.jar 获取 GCM。我使用与所示相同的代码 here . 我使用的是与更改客户端实现之前相同的服务器 (node-gcm
我知道有很多帖子有同样的问题,但看完所有帖子后我找不到问题的原因。 我编写了一个 GCM 客户端来注册我的设备以从我的服务器接收消息。它正在运行,我可以将注册 ID 存储在我的数据库中。 我的问题出在
是否可以借助 robolectric 对 GCM 上游消息进行单元测试?这是我的单位: public void sendUpstream(Bundle data) { GoogleCloudM
我正在尝试让 GCM 在我的应用程序中运行(以在我们的营业时间更改或我们有任何促销 Activity 时通知用户),但我不断收到错误 无法解决尝试使用 Google Cloud Messaging A
我已经使用 Google Cloud Messaging 创建了 TokenID。 在我的 app 中有一个启用和禁用 Notification 的选项。 如果我使用 GoogleCloudMessa
我正在尝试从我的应用程序类 Global 中调用 Google Cloud Messaging 的注册操作: Global global; global = new Global();
我对 Java 编程和一般编程还很陌生。现在我决定制作我自己的应用程序,该应用程序应该使用谷歌云消息传递。不知何故我成功了,但后来我意识到我使用了方法 String regid = gcm.regis
我遇到了 android 应用程序所说的问题。 “The application xxxx Sorry stopped”与推送通知一起工作,当执行调试器时发生在它通过时: 方法一 InstanceID
我正在尝试发帖到 Googles Cloud Messaging Api (GCM) ,但我的请求失败,响应为 HTTP/1.1 400 InvalidTokenFormat。 但是,如果我更改程序,
最近,我注意到,Google 通过使用 google play service SDK,准确地说是 GoogleCloudMessaging 类,为 GCM 提供了新方法。我在 Google Code
我正在尝试使用 GCM 向设备发送消息。作为一种特殊情况,我使用 android 设备作为我的第三方服务器。我添加了以下代码,但出现“Unauthorized Error 401”。在这里,我只是想在
我正在使用 gcm 描述的新方法 here使用 GoogleCloudMessaging 类。但是 10 次中有 9 次出现 SERVICE_NOT_AVAILABLE 错误。只有一次它注册了一个设备
这个问题在这里已经有了答案: Is there any reason to continue using IntentService for handling GCM messages? (1 个回
你好,我正在按照 android 的官方文档发送推送通知,因为旧方法已被弃用,但我在实现 GCM 客户端时遇到问题 http://developer.android.com/google/gcm/cl
我是一名优秀的程序员,十分优秀!