2

我在我的应用程序中使用Parse推送通知,我想在单击时在 Activity 中显示通知文本。这就是我正在尝试的方法。

我创建了一个新活动,它应该处理名为 PushNotification.class 的传入通知,并在其中创建了这个自定义类:

public class PushNotification extends BroadcastReceiver {
private static final String TAG = "MyCustomReceiver";

@Override
public void onReceive(Context context, Intent intent) {
try {
      String action = intent.getAction();
      String channel = intent.getExtras().getString("com.parse.Channel");
      JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));

      Log.d(TAG, "got action " + action + " on channel " + channel + " with:");
      Iterator itr = json.keys();
      while (itr.hasNext()) {
        String key = (String) itr.next();
        Log.d(TAG, "..." + key + " => " + json.getString(key));
      }
      String message = json.getString("alert");
    } catch (JSONException e) {
      Log.d(TAG, "JSONException: " + e.getMessage());
    }
    }
}

现在主要的问题是这行代码不再起作用:

PushService.setDefaultPushCallback(this, PushNotification.class);

它强调了“setDefaultPushCallback”部分,因为它似乎不再将 PushNotification.class 识别为 Activity。

我已经尝试在 parse.com 上询问这个问题,但在那里我没有得到太多帮助,我需要尽快解决这个问题。

4

2 回答 2

3

对于自定义推送通知

在你的清单中指定这样的。

 <service android:name="com.parse.PushService" />

    <receiver
        android:name="packagename.CustomParseBroadcastReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="custom-action-name" />
        </intent-filter>
    </receiver>

在解析仪表板中,您可以通过将文本设置为消息或 Json 格式来手动测试推送通知。

实际的 JSON 格式是

{ "title": "Custom Push-Android", "objectId": " * **iuy", "objectType": "type", "action": "custom-action-name" }

复制此格式并手动发送推送...

然后创建你的广播类..

样本:

public class CustomParseBroadcastReceiver extends BroadcastReceiver 

{
  public static final String ACTION = "custom-action-name";


@Override
public void onReceive(Context context, Intent intent) {

    {
}

   ----
   ----  
}

我希望这有帮助...............

于 2013-11-18T06:50:11.830 回答
0

如果您要从使用活动响应推送切换,则必须在清单中指定广播接收器(请参阅响应 Intent):

<receiver android:name="com.example.PushNotification">
<intent-filter>
  <action android:name="com.example.UPDATE_STATUS" />
</intent-filter>
</receiver>

取代了 PushService.setDefaultCallback 调用。为此,您还必须在 JSON 有效负载中指定操作,如下所示:

{"action":"com.example.UPDATE_STATUS", "alert":"Your message here"}
于 2013-11-05T19:23:23.063 回答