安卓开发如何用百度云实现任意用户 都可以按一个按钮 然后给其他用户发送一条NOTIFICATION

希望提供思路和部分源代码。谢谢啦(本人新手,查了好多资料还是毫无思路,只知道如何在管理控制台中给用户发)... 希望提供思路和部分源代码。谢谢啦(本人新手,查了好多资料还是毫无思路,只知道如何在管理控制台中给用户发) 展开
 我来答
鱼财匚佬ck025
推荐于2016-06-19 · 超过105用户采纳过TA的回答
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:146万
展开全部
百度云推送分两部分:web端和手机端。

我们先看下手机端如何做。

1.注册百度账户

2.加入 百度开发者

3.创建应用

4.下载sdk

5.导入sdk包,开发应用

5.1 在AndroidManifest.xml 中注册响应的receiver

5.2 在主窗体的oncreate中写

PushManager.startWork(getApplicationContext(),

PushConstants.LOGIN_TYPE_API_KEY,

PushServiceUtils.getMetaValue(this, "api_key"));
复制代码

5.3 编写自己的receiver。处理 绑定的相关消息,推送的消息,通知栏点击后的消息

public class MyPushMessageReceiver extends BroadcastReceiver {

private static final String TAG = "BroadcastReceiver";

@Override

public void onReceive(final Context context, Intent intent) {

Log.d(TAG, ">>> Receive intent: \r\n" + intent);

if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) {

// 获取消息内容

String message = intent.getExtras().getString(

PushConstants.EXTRA_PUSH_MESSAGE_STRING);

// 消息的用户自定义内容读取方式

Log.i(TAG, "onMessage: " + message);

// 自定义内容的json串

Log.d(TAG,

"EXTRA_EXTRA = "

+ intent.getStringExtra(PushConstants.EXTRA_EXTRA));

// 用户在此自定义处理消息,以下代码为demo界面展示用

Intent responseIntent = null;

responseIntent = new Intent(PushServiceUtils.ACTION_MESSAGE);

responseIntent.putExtra(PushServiceUtils.EXTRA_MESSAGE, message);

responseIntent.setClass(context, MainActivity.class);

responseIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(responseIntent);

} else if (intent.getAction().equals(PushConstants.ACTION_RECEIVE)) {

// 处理绑定等方法的返回数据

// PushManager.startWork()的返回值通过PushConstants.METHOD_BIND得到

// 获取方法

final String method = intent

.getStringExtra(PushConstants.EXTRA_METHOD);

// 方法返回错误码。若绑定返回错误(非0),则应用将不能正常接收消息。

// 绑定失败的原因有多种,如网络原因,或access token过期。

// 请不要在出错时进行简单的startWork调用,这有可能导致死循环。

// 可以通过限制重试次数,或者在其他时机重新调用来解决。

int errorCode = intent.getIntExtra(PushConstants.EXTRA_ERROR_CODE,

PushConstants.ERROR_SUCCESS);

String content = "";

if (intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT) != null) {

// 返回内容

content = new String(

intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT));

}

// 用户在此自定义处理消息,以下代码为demo界面展示用

Log.d(TAG, "onMessage: method : " + method);

Log.d(TAG, "onMessage: result : " + errorCode);

Log.d(TAG, "onMessage: content : " + content);

Toast.makeText(

context,

"method : " + method + "\n result: " + errorCode

+ "\n content = " + content, Toast.LENGTH_SHORT)

.show();

Intent responseIntent = null;

responseIntent = new Intent(PushServiceUtils.ACTION_RESPONSE);

responseIntent.putExtra(PushServiceUtils.RESPONSE_METHOD, method);

responseIntent.putExtra(PushServiceUtils.RESPONSE_ERRCODE,

errorCode);

responseIntent.putExtra(PushServiceUtils.RESPONSE_CONTENT, content);

responseIntent.setClass(context, MainActivity.class);

responseIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(responseIntent);

// 可选。通知用户点击事件处理

} else if (intent.getAction().equals(

PushConstants.ACTION_RECEIVER_NOTIFICATION_CLICK)) {

Log.d(TAG, "intent=" + intent.toUri(0));

// 自定义内容的json串

String customData = intent

.getStringExtra(PushConstants.EXTRA_EXTRA);

Log.d(TAG,

"EXTRA_EXTRA = "

+ intent.getStringExtra(PushConstants.EXTRA_EXTRA));

if (customData == null || "".equals(customData)) {

return;

}

Intent aIntent = new Intent();

aIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

aIntent.setClass(

context,

com.pdwy.wulianwang.mobile.main.notification.NotificationDetails_Activity.class);

String title = intent

.getStringExtra(PushConstants.EXTRA_NOTIFICATION_TITLE);

aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_TITLE, title);

String content = intent

.getStringExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT);

aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT, content);

String detailContent = "";

try {

org.json.JSONObject json = new JSONObject(customData);

detailContent = json.getString("detailContent");

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 保存在数据库

NotifyDao dao = new NotifyDao();

int notifyId = dao.saveNotify(title, content, detailContent);

// 向消息详细页发送内容

aIntent.putExtra("notify_id", notifyId);

context.startActivity(aIntent);

}

}

}

要是还不能解决

你来我们群里说吧 这里是开发者互相学习交流的

有大神 让他们给你解释你的疑问 q un号 188168040
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式