极光推送---安卓Demo

来源:互联网 发布:嘉艺云管理平台软件 编辑:程序博客网 时间:2024/04/30 08:48

        对于一个一直干.net的程序媛来说,冷不丁的让小编干安卓,那种感觉就好似小狗狗咬小刺猬一样,不知道从哪儿开始下手,对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下最珍贵的记忆,虽然以后小编不一定从事安卓这个行业,代码世界里,很多种事,有的甜蜜,有的温馨,有的婉转成歌,有的绵延不息,在这些故事里,我们唯一的共通之处就是,某年,某月,某个波澜不惊的日子里,曾经很爱很爱你!爱你--这段实习的日子里,安卓带给小编的种种的惊喜。

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

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

         

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

          

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

          

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

package com.example.such;import cn.jpush.android.api.JPushInterface;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        JPushInterface.setDebugMode(true);        JPushInterface.init(this);            }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    }

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

        

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.such"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="14"        android:targetSdkVersion="19" />          <permission        android:name="com.example.such.permission.JPUSH_MESSAGE"        android:protectionLevel="signature" />     <!-- Required  一些系统要求的权限,如访问网络等-->    <uses-permission android:name="com.example.such.permission.JPUSH_MESSAGE" />    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.WAKE_LOCK" />    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.WRITE_SETTINGS" />    <uses-permission android:name="android.permission.VIBRATE" />    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>               <!-- Optional for location -->    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />                  <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.example.such.MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>                        <!-- Required  . Enable it you can get statistics data with channel -->        <meta-data android:name="JPUSH_CHANNEL" android:value="07058465be2a1d937246352d"/>        <meta-data android:name="JPUSH_APPKEY" android:value="187f7628001c1503d487c401" /> <!--  </>值来自开发者平台取得的AppKey-->         <!-- Required SDK核心功能-->        <activity            android:name="cn.jpush.android.ui.PushActivity"            android:theme="@android:style/Theme.Translucent.NoTitleBar"            android:configChanges="orientation|keyboardHidden" >            <intent-filter>                <action android:name="cn.jpush.android.ui.PushActivity" />                <category android:name="android.intent.category.DEFAULT" />                <category android:name="com.example.such" />            </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>                <action android:name="cn.jpush.android.intent.REGISTER" />                <action android:name="cn.jpush.android.intent.REPORT" />                <action android:name="cn.jpush.android.intent.PushService" />                <action android:name="cn.jpush.android.intent.PUSH_TIME" />                            </intent-filter>        </service>                 <!-- Required SDK核心功能-->        <receiver            android:name="cn.jpush.android.service.PushReceiver"            android:enabled="true" >             <intent-filter android:priority="1000">                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  显示通知栏 -->                <category android:name="com.example.such" />            </intent-filter>            <intent-filter>                <action android:name="android.intent.action.USER_PRESENT" />                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />            </intent-filter>             <!-- Optional -->            <intent-filter>                <action android:name="android.intent.action.PACKAGE_ADDED" />                <action android:name="android.intent.action.PACKAGE_REMOVED" />                <data android:scheme="package" />            </intent-filter>           </receiver>                <!-- Required SDK核心功能-->        <receiver android:name="cn.jpush.android.service.AlarmReceiver" />               </application></manifest>
          第六步,编写完代码之后,我们在Portal上推送通知,如果小伙伴的 Android 手机接在电脑上了,则这个 JPush Example 应用就可以安装上,并运行起来了。做下一步动作之前,请确保小伙伴们的手机上的网络是可用的。比如我们要推送的内容如下所示:

         

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

         

         小编寄语:该博客,小编主要的简单的介绍了一下极光推送的相关知识,然后参考着官网上的Demo,小编又自己重新编写了一个,对于各路Android大神来说,这可能不值得一提,但是对于小编来说,开心ing,还是那句话,对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下最珍贵的记忆,虽然以后小编不一定从事安卓这个行业,代码世界里,很多种事,有的甜蜜,有的温馨,有的婉转成歌,有的绵延不息,在这些故事里,我们唯一的共通之处就是,某年,某月,某个波澜不惊的日子里,曾经很爱很爱你!爱你--这段实习的日子里,安卓带给小编的种种的惊喜,实习生活,故事仍在继续`(*∩_∩*)′......

6 1
原创粉丝点击