精华内容
下载资源
问答
  • 百度云推送

    2019-10-08 11:15:04
    在百度上 搜索百度云推送http://push.baidu.com/ 文档中心有个3分钟快速入门http://push.baidu.com/doc/guide/join 点击下载SDK 立即下载 点击创建应用 (注意包名) 创建完成 点击应用配置 有API KEY值 剩下看...

    在百度上 搜索百度云推送http://push.baidu.com/

    文档中心有个 3分钟快速入门 http://push.baidu.com/doc/guide/join

    点击下载SDK 立即下载

    点击创建应用 (注意包名) 创建完成 点击应用配置 有API KEY值

    剩下看文档中心http://push.baidu.com/doc/android/api

     

    注意 其中配置权限下面的放到MainActivity创建之下要不然会报设备为空

    <activity android:label="@string/app_name" android:name="com.bawei.jinritioutiao.MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN"/>

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

    </activity>下

     

    <!-- push service start -->
    <!-- 用于接收系统消息以保证PushService正常运行 -->
    <receiver android:name="com.baidu.android.pushservice.PushServiceReceiver"
        android:process=":bdservice_v1" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            <action android:name="com.baidu.android.pushservice.action.notification.SHOW" />
            <action android:name="com.baidu.android.pushservice.action.media.CLICK" />
            <!-- 以下四项为可选的action声明,可大大提高service存活率和消息到达速度 -->
            <action android:name="android.intent.action.MEDIA_MOUNTED" />
            <action android:name="android.intent.action.USER_PRESENT" />
            <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
            <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
        </intent-filter>
    </receiver>
    <!-- Push服务接收客户端发送的各种请求-->
    <receiver android:name="com.baidu.android.pushservice.RegistrationReceiver"
        android:process=":bdservice_v1" >
        <intent-filter>
            <action android:name="com.baidu.android.pushservice.action.METHOD" />
            <action android:name="com.baidu.android.pushservice.action.BIND_SYNC" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REMOVED" />
            <data android:scheme="package" />
        </intent-filter>                   
    </receiver>
    <service android:name="com.baidu.android.pushservice.PushService" android:exported="true" 
        android:process=":bdservice_v1" >
        <intent-filter >
                <action android:name="com.baidu.android.pushservice.action.PUSH_SERVICE" />
        </intent-filter>
    </service>
    <!-- 4.4版本新增的CommandService声明,提升小米和魅族手机上的实际推送到达率 -->
    <service android:name="com.baidu.android.pushservice.CommandService"
        android:exported="true" />
    <!-- push结束 -->
    
    <!-- 4.6版本新增的Activity声明,提升Push后台存活率 -->
    <activity
        android:launchMode="singleInstance"
        android:name="com.baidu.android.pushservice.PushKeepAlive"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

    转载于:https://www.cnblogs.com/ldou/p/5320315.html

    展开全文
  • 一直在仿微信界面,今天终于有幸利用百度云推送仿一仿微信聊天了。核心功能也就上面的两张图了~~~我拿着手机和模拟器聊天,同时感谢群里的兄弟姐妹帮忙测试(好友列表中)。下面通过几个问题来说明下实现的原理:...
  • /*** * @Version : 1.0 * @Author : li_hao * @Description : 百度推送 * @Date : 2017年11月9日 下午4:22:04*/ public classNotificationPusher {public static final Log log = LogFactory.getLog...

    importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importcom.baidu.yun.core.log.YunLogEvent;importcom.baidu.yun.core.log.YunLogHandler;importcom.baidu.yun.push.auth.PushKeyPair;importcom.baidu.yun.push.client.BaiduPushClient;importcom.baidu.yun.push.constants.BaiduPushConstants;importcom.baidu.yun.push.exception.PushClientException;importcom.baidu.yun.push.exception.PushServerException;importcom.baidu.yun.push.model.PushMsgToSingleDeviceRequest;importcom.baidu.yun.push.model.PushMsgToSingleDeviceResponse;importcom.centit.server.webmgr.baidupush.po.AndroidMessage;importcom.centit.server.webmgr.baidupush.po.IOSMessage;importcom.centit.server.webmgr.baidupush.po.IOSMessageAps;importcom.centit.server.webmgr.baidupush.po.Notification;importcom.centit.server.webmgr.baidupush.po.SendMessage;importcom.centit.server.webmgr.common.DingTalkProperties;/***

    * @Version : 1.0

    * @Author : li_hao

    * @Description : 百度推送

    * @Date : 2017年11月9日 下午4:22:04*/

    public classNotificationPusher {public static final Log log = LogFactory.getLog(NotificationPusher.class);/*** 推送消息到单个设备*/

    public static String pushNotificationToSingleDevice(SendMessage sendMessage, Notification notification) throwsPushClientException, PushServerException {

    Integer deviceType=notification.getDeviceType();

    String apiKey= null;

    String secretKey= null;if(deviceType == 3){

    apiKey="你的android_api_key";

    secretKey="你的android_secret_key";

    }else if(deviceType == 4){

    apiKey="你的ios_api_key";

    secretKey= "你的ios_secret_key";

    }

    PushKeyPair pair= newPushKeyPair(apiKey, secretKey);

    BaiduPushClient pushClient= newBaiduPushClient(pair, BaiduPushConstants.CHANNEL_REST_URL);

    pushClient.setChannelLogHandler(newYunLogHandler() {

    @Overridepublic voidonHandle(YunLogEvent event) {

    log.info(String.format("推送回调日志:%s", event.getMessage()));

    }

    });try{

    PushMsgToSingleDeviceRequest request= newPushMsgToSingleDeviceRequest();

    String message= null;if(deviceType == 3){

    message=JSON.toJSONString(sendMessage.getAndroidMessage());

    }else if(deviceType == 4){

    message=JSON.toJSONString(sendMessage.getIosMessage());

    request.addDeployStatus(notification.getDeployStatus());//IOS的部署状态:Developer,2:Production.

    }

    request.addChannelId(notification.getChannelId());

    request.addMsgExpires(notification.getMsgExpires());//设置message的有效时间

    request.addMessageType(notification.getMessageType());//消息类型:1:通知,0:透传消息.默认为0注:IOS只有通知.

    request.addDeviceType(deviceType); //设备类型:3:android,4:ios

    JSONObject jsonMessage=JSONObject.parseObject(message);

    request.addMessage(jsonMessage.toString());//发起请求

    PushMsgToSingleDeviceResponse response =pushClient.pushMsgToSingleDevice(request);//请求结果解析

    log.info(String.format("推送成功信息:msgId=%s,sendTime=", response.getMsgId(), response.getSendTime()));returnresponse.getMsgId();

    }catch(PushClientException e) {//ERROROPTTYPE 用于设置异常的处理方式 -- 抛出异常和捕获异常,'true' 表示抛出, 'false' 表示捕获。

    if(BaiduPushConstants.ERROROPTTYPE) {throwe;

    }else{

    log.error(String.format("推送客户端异常:%s",e.getMessage()));

    }

    }catch(PushServerException e) {if(BaiduPushConstants.ERROROPTTYPE) {throwe;

    }else{

    log.error(String.format("推送服务端异常:requestId: %d, errorCode: %d, errorMessage: %s", e.getRequestId(), e.getErrorCode(), e.getErrorMsg()));

    }

    }return null;

    }

    }

    展开全文
  • 学习要点:1.应用配置2.账号绑定接口3.标签设置接口(option)4.标签群发接口5.全局群发接口6.通知返回数据1.应用配置AndroidManifest.xmlandroid:name=...

    学习要点:

    1.应用配置

    2.账号绑定接口

    3.标签设置接口(option)

    4.标签群发接口

    5.全局群发接口

    6.通知返回数据

    1.应用配置

    AndroidManifest.xml

    android:name="com.csz.push.DemoApplication"

    android:icon="@drawable/ic_launcher"

    android:label="@string/app_name" />

    /**

    * 如果之前没写 必须给空实现 如果之前写了 必须让FrontiaApplication

    * 做为基类

    */

    public class DemoApplication extends FrontiaApplication{

    @Override

    public void onCreate() {

    super.onCreate();

    //TODO my thing

    }

    }

    android:launchMode="singleTask"

    android:process=":bdservice_v1">

    android:process=":bdservice_v1">

    android:name="com.baidu.android.pushservice.PushService"

    android:exported="true"

    android:process=":bdservice_v1" />

    展开全文
  • bpush-nodejs 是百度云推送 nodejs sdk,使用简单,部署方便,基于百度云推送 rest api 3.0开发。使用npm install bpush-nodejs --savevar bpush = require('bpush-nodejs'); ...说明SDK采用Promise方式进行回调,...
  • import java.net.URLEncoder; import java.security.MessageDigest;... System.out.println(new BaiduPushUtil().push_msg("818670655850242201", "4222129398189191299", "推送成功", "推送成功")); } }

    import java.net.URLEncoder;

    import java.security.MessageDigest;

    import java.util.Arrays;

    import java.util.Date;

    import java.util.HashMap;

    import java.util.Map;

    import java.util.SortedMap;

    import java.util.TreeMap;

    import java.util.UUID;

    import com.yfapp.platform.entity.PushMessage;

    import net.sf.json.JSONObject;

    /**

    *

    * @author PSVM

    *

    */

    public class BaiduPushUtil {

    /**

    * MD5加密

    *

    * @param s

    * @return

    */

    public String MD5(String s) {

    char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

    try {

    byte[] strTemp = s.getBytes();

    MessageDigest mdTemp = MessageDigest.getInstance("MD5");

    mdTemp.update(strTemp);

    byte[] md = mdTemp.digest();

    int j = md.length;

    char str[] = new char[j * 2];

    int k = 0;

    for (int i = 0; i 

    byte byte0 = md[i];

    str[k++] = hexDigits[byte0 >>> 4 & 0xf];

    str[k++] = hexDigits[byte0 & 0xf];

    }

    return new String(str);

    } catch (Exception e) {

    return null;

    }

    }

    /**

    * Map排序

    *

    * @param unsort_map

    * @return

    */

    private SortedMap mapSortByKey(Map unsort_map) {

    TreeMap result = new TreeMap();

    Object[] unsort_key = unsort_map.keySet().toArray();

    Arrays.sort(unsort_key);

    for (int i = 0; i 

    result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i]));

    }

    return result.tailMap(result.firstKey());

    }

    public static String getMessage(String title, String description) {

    PushMessage pushMessage = new PushMessage();

    pushMessage.setTitle(title);

    pushMessage.setDescription(description);

    String messages = JSONObject.fromObject(pushMessage).toString();

    return messages;

    }

    /**

    * 获取签名

    *

    * @param url

    * @param parameters

    * @param secret

    * @return

    */

    public String getSignature(String url, Map parameters, String secret) {

    // 先将参数以其参数名的字典序升序进行排序

    Map sortedParams = new HashMap(parameters);

    sortedParams = mapSortByKey(sortedParams);

    // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起

    StringBuilder baseString = new StringBuilder();

    baseString.append("POST");

    baseString.append(url);

    for (String key : sortedParams.keySet()) {

    if (null != key && !"".equals(key)) {

    baseString.append(key).append("=").append(sortedParams.get(key));

    }

    sortedParams.get(key);

    }

    baseString.append(secret);

    String encodeString = URLEncoder.encode(baseString.toString());

    String sign = MD5(encodeString);

    return sign;

    }

    public String push_msg(String user_id, String title, String description) {

    return this.push_msg(user_id, null, title, description);

    }

    /**

    *

    * @param user_id

    * @param title

    * @param description

    * @return

    */

    public String push_msg(String user_id, String channel_id, String title, String description) {

    String url = "http://channel.api.duapp.com/rest/2.0/channel/channel";

    // 方法名

    String method = "push_msg";

    // 访问令牌

    String apikey = "WszZQSZgeKnYkQIlXsFUh2kF";

    // 密匙

    String secret = "U7Wl9eRF9GjQKFjAza1RAvaC0kkOqF5v";

    // 推送类型,取值范围为:1~3

    // 1:单个人,必须指定user_id 和 channel_id (指定用户的指定设备)或者user_id(指定用户的所有设备)

    // 2:一群人,必须指定 tag

    // 3:所有人,无需指定tag、user_id、channel_id

    int push_type = 1;

    // 设备类型

    // 1:浏览器设备;

    // 2:PC设备;

    // 3:Andriod设备;

    // 4:iOS设备;

    // 5:Windows Phone设备;

    int device_type = 3;

    // 消息类型

    // 0:消息(透传给应用的消息体)

    // 1:通知(对应设备上的消息通知)

    // 默认值为0。

    int message_type = 1;

    // 推送信息

    String messages = getMessage(title, description);

    // 消息标识。

    // 指定消息标识,必须和messages一一对应。相同消息标识的消息会自动覆盖。

    String msg_keys = UUID.randomUUID().toString();

    // 用户发起请求时的Unix时间戳。本次请求签名的有效时间为该时间戳+10分钟。

    String timestamp = Long.toString(new Date().getTime());

    Map parameters = new TreeMap();

    parameters.put("method", method);

    parameters.put("apikey", apikey);

    parameters.put("user_id", user_id);

    if (null != channel_id) {

    parameters.put("channel_id", channel_id);

    }

    parameters.put("push_type", push_type + "");

    parameters.put("device_type", device_type + "");

    parameters.put("message_type", message_type + "");

    parameters.put("messages", messages);

    parameters.put("msg_keys", msg_keys);

    parameters.put("timestamp", timestamp + "");

    String sign = getSignature(url, parameters, secret);

    parameters.put("sign", sign);

    String responseStr = HttpXmlClient.post(url, parameters);

    return responseStr;

    }

    public String push_msgToAll(String title, String description) {

    String url = "http://channel.api.duapp.com/rest/2.0/channel/channel";

    // 方法名

    String method = "push_msg";

    // 访问令牌

    String apikey = "WszZQSZgeKnYkQIlXsFUh2kF";

    // 密匙

    String secret = "U7Wl9eRF9GjQKFjAza1RAvaC0kkOqF5v";

    // 推送类型,取值范围为:1~3

    // 1:单个人,必须指定user_id 和 channel_id (指定用户的指定设备)或者user_id(指定用户的所有设备)

    // 2:一群人,必须指定 tag

    // 3:所有人,无需指定tag、user_id、channel_id

    int push_type = 3;

    // 设备类型

    // 1:浏览器设备;

    // 2:PC设备;

    // 3:Android设备;

    // 4:iOS设备;

    // 5:Windows Phone设备;

    int device_type = 3;

    // 消息类型

    // 0:消息(透传给应用的消息体)

    // 1:通知(对应设备上的消息通知)

    // 默认值为0。

    int message_type = 1;

    // 推送信息

    String messages = getMessage(title, description);

    // 消息标识。

    // 指定消息标识,必须和messages一一对应。相同消息标识的消息会自动覆盖。

    String msg_keys = UUID.randomUUID().toString();

    // 用户发起请求时的Unix时间戳。本次请求签名的有效时间为该时间戳+10分钟。

    String timestamp = Long.toString(new Date().getTime());

    Map parameters = new TreeMap();

    parameters.put("method", method);

    parameters.put("apikey", apikey.toString());

    parameters.put("push_type", push_type + "");

    parameters.put("device_type", device_type + "");

    parameters.put("message_type", message_type + "");

    parameters.put("messages", messages.toString());

    parameters.put("msg_keys", msg_keys.toString());

    parameters.put("timestamp", timestamp + "");

    String sign = getSignature(url, parameters, secret);

    parameters.put("sign", sign.toString());

    String responseStr = HttpXmlClient.post(url, parameters);

    return responseStr;

    }

    public static void main(String[] args) {

    // System.out.println(BaiduPushUtil.push_msg("990593941931946992",

    // "4391131411952560641", new Date().toString(), "bbb"));

    System.out.println(new BaiduPushUtil().push_msg("818670655850242201", "4222129398189191299", "推送成功", "推送成功"));

    }

    }

    展开全文
  • 展开全部百度云(Baidu Cloud)是百度推出的一项云存储服务,首次注册即有机会获得2T的空间,已覆盖主32313133353236313431303231363533e78988e69d8331333337386637流PC和手机操作系统,包含Web版、Windows版、Mac版、...
  • 百度云推送 微信朋友圈分享 注意打包的时候把demokey.keystore用这个签名打包 密码123456//------------------------------------------------------------------------------//发送图片链接到朋友圈public void ...
  • /*** 推送单播通知*@author* @Date 2017年3月2日* @Desc*/public classBaiduPush {publicString[] pushNotificationByUser(String channelId,Integer deviceType, String message,Mapmap){String[] results= new ...
  • *创建APP ID,同一个公司可能会使用类似于 com.example.* 这样通用的 App ID,但是如果要在 App 中加入消息推送功能,那么是不能使用通用 ID 的,需要为之单独创建一个。 首先登陆 iOS Dev Center ,然后进入 Member...
  • 认证推送成功 77 System.out.println("push amount : " +response.getSuccessAmount());78 }79 } catch(ChannelServerException e) {80 //处理服务端错误异常 81 System.out.println(String.format(82 "request_id:...
  • 主要介绍了Erlang实现的百度云推送Android服务端实例,本文先是讲解了实现步骤,然后给出实现代码,需要的朋友可以参考下
  • Java SDK 快速开始Queck start是一个介绍如何使用Java sdk的入门手册,方便用户快速地通过sdk使用百度云推送服务。Step1注册成为百度开发者如果已经是百度开发者用户,请直接跳至step2。关于注册开发者账号,请参见...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 843
精华内容 337
关键字:

百度云推送