我是android的新手。我曾尝试过文档中给出的示例。但是我没有得到任何推送通知,只有我收到通知图标但没有内容和标题。任何人都可以帮助我清除??????
我已经给出了以下代码。
package com.example.pushnotification;
import android.os.Bundle;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.view.Menu;
public class Pushactivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pushactivity);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("Check Notification")
.setContentText("This is to test push!");
Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
int mId = 10;
mNotificationManager.notify(mId, mBuilder.build());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.pushactivity, menu);
return true;
}
}
提前致谢
答案 0 :(得分:3)
当然会起作用。我使用gcm,它在模拟器和真实设备中工作。
您必须从Android sdk manager安装google云消息并使用gcm.jar。
这是您可以测试它的最佳教程。http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/
答案 1 :(得分:1)
Will push notification works in emulator or not?
是您可以在模拟器中测试Push Notification
,这里是 Source ,在这里您可以找到在模拟器中显示Push Notification
的步骤,您需要下载 gcm.jar
来自日食:
Window => Android SDK Manager =>额外=>适用于Android库的Google Cloud Messaging
In this sample i found a class as "Resultactivity". Purpose of using this class?
您可以在此处看到NotificationCompat.Builder
图片,该图片用于显示Notification
,
访问此 Link 1,Link 2 了解详情,当您点击Notification
时,您将被重定向到ResultActivity
答案 2 :(得分:1)
检查 AndroidManifest.xml 文件。 (将 ** manifest-package ** 替换为您的包名称)
<uses-permission android:name="android.permission.INTERNET" />
<permission android:name="**manifest-package**.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="**manifest-package**.permission.C2D_MESSAGE"/>
<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"/>
申请......
<receiver android:name=".C2DMMessageReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="**manifest-package**" />
</intent-filter>
</receiver>
</application>
答案 3 :(得分:0)
前几天我处理了gcm并使用了以下教程:
简单教程:http://fundroiding.wordpress.com/2012/06/29/google-cloud-messaging-for-android-gcm-simple-tutorial/
如果你需要一个可以使用推送的后端,那么我会推荐一个“BaaS”服务。这些服务通常都有预先安装的“推送模块”。 (示例:apiOmat,解析...)
答案 4 :(得分:0)
GCM将在运行Android 2.2 的Google API 的模拟器上运行。
它需要运行Android 2.2或更高版本的设备 已安装Google Play商店应用程序,或正在运行的模拟器 带有Google API的Android 2.2。但是,您不限于此 通过Google Play商店部署您的Android应用程序。
答案 5 :(得分:0)
我遇到了同样的问题,发现更正是这个问题:Clicking on Notification is not starting intended activity?
更正是改变线:
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
到
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);