2

我是安卓新手。我已经尝试过文档中给出的示例。但是我没有收到任何推送通知,只有我收到通知图标但没有内容和标题。谁能帮我清理一下??????

  1. 推送通知是否可以在模拟器中工作?
  2. 在这个示例中,我找到了一个名为“Resultactivity”的类。使用这个
    类的目的?

我已经给出了下面的代码。

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;
}

}

提前致谢

4

6 回答 6

3

肯定会奏效的。我使用了 gcm,它在模拟器和真实设备中工作。

您必须从 android sdk manager 安装谷歌云消息并使用 gcm.jar。

这是您可以测试它的最佳教程。http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

于 2013-05-23T12:11:28.333 回答
1
Will push notification works in emulator or not?

的,你可以Push Notification 在模拟器中测试,这里是源代码,在这里你可以找到Push Notification在模拟器中显示的步骤,你需要下载gcm.jar

从日食:

Window => Android SDK Manager => Extras => Google Cloud Messaging for Android Library

In this sample i found a class as "Resultactivity". Purpose of using this class?

在此处输入图像描述

在这里您可以看到NotificationCompat.Builder用于显示的图像Notification

访问此链接 1链接 2了解更多信息,当您单击时,Notification您将被重定向到ResultActivity

于 2013-05-23T12:05:52.033 回答
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>
于 2014-05-13T10:10:09.833 回答
0

我有同样的问题,发现更正是这个问题:点击通知没有开始预期的活动?

更正是更改行:

PendingIntent resultPendingIntent =
        stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);

PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
                    PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);
于 2014-06-09T18:04:23.837 回答
0

GCM 将在运行带有 Google API的 Android 2.2 的模拟器上工作。

它要求运行 Android 2.2 或更高版本的设备也安装了 Google Play Store 应用程序,或者运行 Android 2.2 和 Google API 的模拟器。但是,您不仅限于通过 Google Play 商店部署您的 Android 应用程序。

于 2013-05-23T14:04:31.820 回答
0

几天前我处理了gcm并使用了以下教程:

简单教程: http: //fundroiding.wordpress.com/2012/06/29/google-cloud-messaging-for-android-gcm-simple-tutorial/

如果您需要一个可以使用推送的后端,那么我会推荐一个“BaaS”服务。这些服务通常预先安装了“推送模块”。(示例:apiOmat、解析...)

于 2013-05-23T12:54:46.003 回答