极光推送

来源:互联网 发布:淘宝退货赠品要退吗 编辑:程序博客网 时间:2024/04/27 17:05

接下来,小编就和小伙伴们分享一下这两天小编研究的极光推送,再此感谢郑博小朋友的耐心指导,首先,我们来了解一下什么是极光推送,小编刚听到这个名字,哇哦,这是什么呢?听着就低调奢华有内涵,还极光推送?是要用到光么?小编又土鳖了,咳咳,所谓的极光推送呢就是一个面向普通开发者开放的,免费的第三方消息推送服务。接着小编就和小伙伴分享一下,如何实现极光推送这个小功能。

        第一步,创建帐号进入极光推送后,首先显示的是创建应用的界面。填上你的应用程序的名称,以及 Android包名这二顶就可以了,Portal上创建应用,填写相应的应用名称,和应用的包名,注意这里的包名要和工程里面的名称保持一致,如下图所示:

         

         第二步,点击 ”下载应用Example “后,小伙伴将下载到一个 .zip 压缩文件。解压后,即看到一个同名目录。这个目录下,是一个 Android 项目里的所有文件。小伙伴们可以把官方的Demo下载下来参考参考,我们需要用到官方Demo里面的包文件,如下图所示:

          

         第三步,我们在eclipse里创建一个Android的工厂,libs里面需要用到的相关文件拷贝到我们的demo里面,如下图所示:

          

          第四步,我们来编写我们的Demo,由于小编初次接触Android,官网上关于极光推送的小例子,对于小编来说,看的也很吃力,在郑博小伙伴的帮助下,小编把官网上的Demo改造了一下,稍稍的简单了一丢丢,解下来,我们开始编写代码,首先我们来编写MainActivity里面的代码,如下图所示:

[java] view plaincopyprint?
  1. <span style="font-size:18px;">package com.example.such;  
  2.   
  3.   
  4. import cn.jpush.android.api.JPushInterface;  
  5. import android.os.Bundle;  
  6. import android.app.Activity;  
  7. import android.view.Menu;  
  8.   
  9. public class MainActivity extends Activity {  
  10.   
  11.     @Override  
  12.     protected void onCreate(Bundle savedInstanceState) {  
  13.         super.onCreate(savedInstanceState);  
  14.         setContentView(R.layout.activity_main);  
  15.         JPushInterface.setDebugMode(true);  
  16.         JPushInterface.init(this);  
  17.           
  18.     }  
  19.   
  20.   
  21.     @Override  
  22.     public boolean onCreateOptionsMenu(Menu menu) {  
  23.         // Inflate the menu; this adds items to the action bar if it is present.  
  24.         getMenuInflater().inflate(R.menu.main, menu);  
  25.         return true;  
  26.     }  
  27.       
  28. }  
  29. </span>  

       第五步,我们来编写AndroidManifest.xml里面的代码,如下所示:

        

[java] view plaincopyprint?
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.example.such"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="14"  
  9.         android:targetSdkVersion="19" />  
  10.       
  11.       <permission  
  12.         android:name="com.example.such.permission.JPUSH_MESSAGE"  
  13.         android:protectionLevel="signature" />  
  14.   
  15.      <!-- Required  一些系统要求的权限,如访问网络等-->  
  16.     <uses-permission android:name="com.example.such.permission.JPUSH_MESSAGE" />  
  17.     <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />  
  18.     <uses-permission android:name="android.permission.INTERNET" />  
  19.     <uses-permission android:name="android.permission.WAKE_LOCK" />  
  20.     <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  21.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  22.     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />  
  23.     <uses-permission android:name="android.permission.WRITE_SETTINGS" />  
  24.     <uses-permission android:name="android.permission.VIBRATE" />  
  25.     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />  
  26.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  27.     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>    
  28.       
  29.       
  30.      <!-- Optional for location -->  
  31.     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  
  32.     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  33.     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
  34.     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
  35.     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />  
  36.     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />  
  37.       
  38.       
  39.         
  40.     <application  
  41.         android:allowBackup="true"  
  42.         android:icon="@drawable/ic_launcher"  
  43.         android:label="@string/app_name"  
  44.         android:theme="@style/AppTheme" >  
  45.         <activity  
  46.             android:name="com.example.such.MainActivity"  
  47.             android:label="@string/app_name" >  
  48.             <intent-filter>  
  49.                 <action android:name="android.intent.action.MAIN" />  
  50.   
  51.                 <category android:name="android.intent.category.LAUNCHER" />  
  52.             </intent-filter>  
  53.         </activity>  
  54.           
  55.           
  56.         <!-- Required  . Enable it you can get statistics data with channel -->  
  57.         <meta-data android:name="JPUSH_CHANNEL" android:value="07058465be2a1d937246352d"/>  
  58.         <meta-data android:name="JPUSH_APPKEY" android:value="187f7628001c1503d487c401" /> <!--  </>值来自开发者平台取得的AppKey-->  
  59.       
  60.      <!-- Required SDK核心功能-->  
  61.         <activity  
  62.             android:name="cn.jpush.android.ui.PushActivity"  
  63.             android:theme="@android:style/Theme.Translucent.NoTitleBar"  
  64.             android:configChanges="orientation|keyboardHidden" >  
  65.             <intent-filter>  
  66.                 <action android:name="cn.jpush.android.ui.PushActivity" />  
  67.                 <category android:name="android.intent.category.DEFAULT" />  
  68.                 <category android:name="com.example.such" />  
  69.             </intent-filter>  
  70.         </activity>  
  71.           
  72.           <!-- Required  SDK核心功能-->  
  73.         <service  
  74.             android:name="cn.jpush.android.service.DownloadService"  
  75.             android:enabled="true"  
  76.             android:exported="false" >  
  77.         </service>  
  78.           
  79.          <!-- Required SDK 核心功能-->  
  80.         <service  
  81.             android:name="cn.jpush.android.service.PushService"  
  82.             android:enabled="true"  
  83.             android:exported="false">  
  84.             <intent-filter>  
  85.                 <action android:name="cn.jpush.android.intent.REGISTER" />  
  86.                 <action android:name="cn.jpush.android.intent.REPORT" />  
  87.                 <action android:name="cn.jpush.android.intent.PushService" />  
  88.                 <action android:name="cn.jpush.android.intent.PUSH_TIME" />  
  89.                   
  90.             </intent-filter>  
  91.         </service>  
  92.           
  93.          <!-- Required SDK核心功能-->  
  94.         <receiver  
  95.             android:name="cn.jpush.android.service.PushReceiver"  
  96.             android:enabled="true" >  
  97.              <intent-filter android:priority="1000">  
  98.                 <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  显示通知栏 -->  
  99.                 <category android:name="com.example.such" />  
  100.             </intent-filter>  
  101.             <intent-filter>  
  102.                 <action android:name="android.intent.action.USER_PRESENT" />  
  103.                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />  
  104.             </intent-filter>  
  105.              <!-- Optional -->  
  106.             <intent-filter>  
  107.                 <action android:name="android.intent.action.PACKAGE_ADDED" />  
  108.                 <action android:name="android.intent.action.PACKAGE_REMOVED" />  
  109.                 <data android:scheme="package" />  
  110.             </intent-filter>  
  111.      
  112.         </receiver>  
  113.           
  114.         <!-- Required SDK核心功能-->  
  115.         <receiver android:name="cn.jpush.android.service.AlarmReceiver" />  
  116.           
  117.        </application>  
  118.   
  119. </manifest>  
  120. </span>  
          第六步,编写完代码之后,我们在Portal上推送通知,如果小伙伴的 Android 手机接在电脑上了,则这个 JPush Example 应用就可以安装上,并运行起来了。做下一步动作之前,请确保小伙伴们的手机上的网络是可用的。比如我们要推送的内容如下所示:

         

         第七步,我们来看看小编的手机,会有怎么样的奇迹,声明一下,下面这张图的颜值不是很高,小伙伴们就将就看一下哈:

         

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 云校家帐号被锁定怎么办 qq音乐停止运行怎么办 做事效率低怎么办教案 孩子做事效率低怎么办 百度搜不到答案怎么办 学乐云账号忘了怎么办 wps云空间不足怎么办 超星密码忘了怎么办 百度钱包忘记密码怎么办 宝宝吃了粉笔怎么办 粉笔灰进眼睛怎么办 讲公开课紧张怎么办 课堂派考勤旷课怎么办 2018qq音乐付费怎么办 不满一个月社保怎么办 试用期未买社保怎么办 小视频转发黑屏怎么办 听歌要钱的怎么办 手机歌曲要付费怎么办 安装包已损坏怎么办 方舟 安装包损坏怎么办 安装包已删除怎么办 超大附件过期了怎么办 邮箱被黑客盯上怎么办 云闪付安全问题忘记了怎么办 不知道网易账号怎么办 登录过程初始化失败怎么办 登录进程初始化失败怎么办 网易邮箱地址忘了怎么办 电脑电源短路了怎么办 电脑电源有问题怎么办 手机账号忘了怎么办 简历周五发了怎么办 网易邮箱被注销怎么办 foxmail接收密码忘记怎么办 招才猫企业邮箱认证没有怎么办 管理员账号被删除怎么办 我想办个信用卡怎么办 qq邮箱支付宝怎么办 12306忘记了邮箱怎么办 12306邮箱被占用怎么办