原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。http://9052696.blog.51cto.com/9042696/1538089

极光推送(对客户端的app如天猫进行消息推送)

第一种:利用网页进行推送(下面按这种来介绍)

第二种:利用javase代码进行消息推送

使用步骤

1\登陆极光网址

2\注册后并登陆

3、点击用户名下的控制台

4、创建应用进入以下界面(只要填写应用名称,应用图标,应用包名即可,再点击下载最下方的创建我的应用即消息推送的sdkDemos可以进行消息推送的例子)

5、将下载下来的消息推送的sdkDemos导到excipse

6、在Demos中的ExampleApplication.java添加代码

第二个参数是手机的设备别名(在放手机电池的槽里可以看到IMEI的号就是)

7、在官方模拟器下运行Demos,在日志上有日志

如果成功运行了Demos后,在极光自己的账号登陆后创建的应用里,点击发送消息进入下面的界面:将手机的设备别名写的框里和写下发送的信息后,点击立即发送消息即可在自己的手机里看到推送的消息

怎么在自己的项目里做消息推送:

1、将之前下载下来的消息推送Demos中的MyReicever.javaExampleUtilTestActivity三个文件copy到自己的项目里

2、在自己项目中MainActivityoncreate里写registerMessageReceiver();并在MainActivity下添加以下代码

privateMessageReceivermMessageReceiver;

publicstaticfinalStringMESSAGE_RECEIVED_ACTION="com.example.jpushdemo.MESSAGE_RECEIVED_ACTION";

publicstaticfinalStringKEY_TITLE="title";

publicstaticfinalStringKEY_MESSAGE="message";

publicstaticfinalStringKEY_EXTRAS="extras";

publicvoidregisterMessageReceiver() {

mMessageReceiver=newMessageReceiver();

IntentFilter filter =newIntentFilter();

filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);

filter.addAction(MESSAGE_RECEIVED_ACTION);

registerReceiver(mMessageReceiver, filter);

}

publicclassMessageReceiverextendsBroadcastReceiver {

@Override

publicvoidonReceive(Context context, Intent intent) {

if(MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {

String messge = intent.getStringExtra(KEY_MESSAGE);

String extras = intent.getStringExtra(KEY_EXTRAS);

StringBuilder showMsg =newStringBuilder();

showMsg.append(KEY_MESSAGE+" : "+ messge +"\n");

if(!ExampleUtil.isEmpty(extras)){

showMsg.append(KEY_EXTRAS+" : "+ extras +"\n");

}

// setCostomMsg(showMsg.toString());

}

}

}

3、在清单中将

<permission

android:name="com.example.ex_example.permission.JPUSH_MESSAGE"

android:protectionLevel="signature"/>

<!-- Required一些系统要求的权限,如访问网络等-->

<uses-permissionandroid:name="com.example.ex_example.permission.JPUSH_MESSAGE"/>

<uses-permissionandroid:name="android.permission.RECEIVE_USER_PRESENT"/>

<uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>

<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>

<uses-permissionandroid:name="android.permission.WRITE_SETTINGS"/>

<uses-permissionandroid:name="android.permission.VIBRATE"/>

<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permissionandroid:name="android.permission.SYSTEM_ALERT_WINDOW"/>

<!-- Optional for location -->

<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>

<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-permissionandroid:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

<uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"/>

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<uses-permissionandroid:name="android.permission.VIBRATE"/>

<uses-permissionandroid:name="android.permission.CAMERA"/>

<uses-featureandroid:name="android.hardware.camera"/>

<uses-featureandroid:name="android.hardware.camera.autofocus"/>

<uses-permissionandroid:name="android.permission.INTERNET"/>

<!--Required SDK核心功能-->

<activity

android:name="cn.jpush.android.ui.PushActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:configChanges="orientation|keyboardHidden">

<intent-filter>

<actionandroid:name="cn.jpush.android.ui.PushActivity"/>

<categoryandroid:name="android.intent.category.DEFAULT"/>

<categoryandroid:name="com.example.ex_example"/>

</intent-filter>

</activity>

<!-- For test only测试状态通知栏,需要打开的Activity -->

<activityandroid:name="com.example.jpushdemo.TestActivity">

<intent-filter>

<actionandroid:name="jpush.testAction"/>

<categoryandroid:name="jpush.testCategory"/>

</intent-filter>

</activity>

<!-- Required SDK核心功能-->

<service

android:name="cn.jpush.android.service.DownloadService"

android:enabled="true"

android:exported="false">

</service>

<!-- Required SDK核心功能-->

<service

android:name="cn.jpush.android.service.PushService"

android:enabled="true"

android:exported="false">

<intent-filter>

<actionandroid:name="cn.jpush.android.intent.REGISTER"/>

<actionandroid:name="cn.jpush.android.intent.REPORT"/>

<actionandroid:name="cn.jpush.android.intent.PushService"/>

<actionandroid:name="cn.jpush.android.intent.PUSH_TIME"/>

</intent-filter>

</service>

<!-- Required SDK核心功能-->

<receiver

android:name="cn.jpush.android.service.PushReceiver"

android:enabled="true">

<intent-filterandroid:priority="1000">

<actionandroid:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY"/><!--Required显示通知栏-->

<categoryandroid:name="com.example.ex_example"/>

</intent-filter>

<intent-filter>

<actionandroid:name="android.intent.action.USER_PRESENT"/>

<actionandroid:name="android.net.conn.CONNECTIVITY_CHANGE"/>

</intent-filter>

<!-- Optional -->

<intent-filter>

<actionandroid:name="android.intent.action.PACKAGE_ADDED"/>

<actionandroid:name="android.intent.action.PACKAGE_REMOVED"/>

<dataandroid:scheme="package"/>

</intent-filter>

</receiver>

<!-- Required SDK核心功能-->

<receiverandroid:name="cn.jpush.android.service.AlarmReceiver"/>

<!-- User defined. For test only用户自定义的广播接收器-->

<receiver

android:name="com.example.jpushdemo.MyReceiver"

android:enabled="true">

<intent-filter>

<actionandroid:name="cn.jpush.android.intent.REGISTRATION"/><!--Required用户注册SDKintent-->

<actionandroid:name="cn.jpush.android.intent.UNREGISTRATION"/>

<actionandroid:name="cn.jpush.android.intent.MESSAGE_RECEIVED"/><!--Required用户接收SDK消息的intent-->

<actionandroid:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED"/><!--Required用户接收SDK通知栏信息的intent-->

<actionandroid:name="cn.jpush.android.intent.NOTIFICATION_OPENED"/><!--Required用户打开自定义通知栏的intent-->

<actionandroid:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK"/><!--Optional用户接受Rich PushJavascript回调函数的intent-->

<actionandroid:name="cn.jpush.android.intent.CONNECTION"/><!--接收网络变化连接/断开since 1.6.3 -->

<categoryandroid:name="com.example.ex_example"/>

</intent-filter>

</receiver>

<!-- Required . Enable it you can get statistics data withchannel -->

<meta-dataandroid:name="JPUSH_CHANNEL"android:value="developer-default"/>

<meta-dataandroid:name="JPUSH_APPKEY"android:value="4825c98077eb95d8b2397a3c"/><!-- </>值来自开发者平台取得的AppKey-->

4、完成了以上3步骤就可以在自己的项目中推送消息了

本文出自 “Android” 博客,请务必保留此出处http://9052696.blog.51cto.com/9042696/1538089

更多相关文章

  1. Android消息推送接收后,通知栏的显示
  2. java漏洞成黑客目标微软呼吁用户更新软件
  3. 用户的身份证号和手机号验证
  4. Ldap 修改用户密码及安装证书
  5. 如何判断用户的java代码是否已成功编译?
  6. 根据用户的动态字段对链接列表进行排序
  7. java 关于单用户登录session问题,在线人数统计非正常退出系统问题
  8. 无法从其他用户的crontab作业执行java程序
  9. 如何修改JTextField (Swing)以显示在用户输入文本之前不会消失的

随机推荐

  1. 我的“三本”大学生涯到此结束!
  2. 44万条数据揭秘:如何成为网易云音乐评论区
  3. Python 为什么只需一条语句“a,b=b,a”,就
  4. 用python重温统计学基础:描述性统计分析
  5. 我被一道今日头条面试题虐暴了,菊花疼!
  6. Python 为什么用 # 号作注释符?
  7. Python 3.10 版本采纳了首个 PEP,中文翻译
  8. Python 为什么不用分号作终止符?
  9. 当我发现国际友人翻译了我的文章之后……
  10. 如何成为那一小部分优秀开发者?