gpt4 book ai didi

java - android 使用 parse.com api 通过推送通知实现聊天

转载 作者:行者123 更新时间:2023-11-30 11:17:22 25 4
gpt4 key购买 nike

我正在做一个聊天应用程序。在应用程序中,我必须使用 parse andorid sdk 借助推送通知进行聊天。我成功地在不同用户之间生成推送通知。但无法接收推送并在 ListView 中添加他们的数据。这是maifest文件的代码

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />





<application
android:name="example.chat.ChatApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >


<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name" />

<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/app_id" />

<activity
android:name="example.chat.LoginActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="example.chat.FriendslIst"
android:label="Friend list"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="example.chat.RegisterActivity"
android:label="@string/title_activity_register"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="example.chat.FriendListActivity"
android:label="@string/title_activity_friend_list"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="example.chat.ChatActivity"
android:label="@string/title_activity_chat"
android:screenOrientation="portrait" >
</activity>

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

<receiver android:name="com.parse.ParseBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.RECEIVE_BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>



<receiver android:name="example.chat.MyCustomReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="example.chat.UPDATE_STATUS" />
</intent-filter>
</receiver>

</application>

和我的自定义接收器的代码

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

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


Toast.makeText(context, ""+intent, Toast.LENGTH_LONG).show();
}
}

从 java 代码我发送这样的推送:

ParseQuery<ParseInstallation> query = ParseInstallation.getQuery();
query.whereEqualTo("device_id", target);
ParsePush push = new ParsePush();
push.setQuery(query);
push.setMessage(message);
push.setExpirationTimeInterval(86400);
push.sendInBackground();

请告诉我使用 reciever 接收数据哪里出错了,以及当我接收到 push 意味着任何逻辑或想法进一步移动时该怎么做。提前致谢

最佳答案

这是 list 文件......

  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your package name"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="16" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="your package name.YourActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

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

<receiver android:name="com.parse.ParseBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.RECEIVE_BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<receiver android:name="your package name.YourCustomReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="your package name.UPDATE_STATUS" />
</intent-filter>
</receiver>
</application>

</manifest>

使用此代码接收推送...

public class MyCustomReceiver extends BroadcastReceiver {

字符串标题、发件人、消息;

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

Bundle extras = intent.getExtras();

String message = extras != null ? extras.getString("com.parse.Data")
: "";

Log.e("message ", " " + message);

JSONObject jObject;
try {
if (message != null && !message.equals("")) {
jObject = new JSONObject(message);

from = jObject.getString("from");
msg = jObject.getString("title");
title = jObject.getString("msg");



GCMMessage gcmMessage = new GCMMessage();
gcmMessage.setMsg_body(msg);
gcmMessage.setMsg_title(title);
gcmMessage.setType(0);
gcmMessage.setDateTime(time);



DatabaseUtil.insertMessage(context, gcmMessage);
}

}

catch (JSONException e) {
e.printStackTrace();
}

}

}

这是发送推送的代码...

    JSONObject obj;
try {
obj =new JSONObject();
obj.put("alert","oman expert ");
obj.put("action","Your Package name.UPDATE_STATUS");



data.put("from", ParseUser.getCurrentUser().getUsername());


obj.put("msg","hi");
obj.put("title","msg");
ParsePush push = new ParsePush();
ParseQuery query = ParseInstallation.getQuery();



push.setQuery(query);
push.setData(obj);
push.sendInBackground();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

如有任何进一步的疑问,请告诉我....

关于java - android 使用 parse.com api 通过推送通知实现聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24371262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com