極光推送---安卓Demo
對於一個一直幹.net的程序媛來說。冷不丁的讓小編幹安卓,那種感覺就好似小狗狗咬小刺猬一樣,不知道從哪兒開始下手,對於小編來說。既是挑戰更是機遇,由於知識都是相通的。再者來說,在小編的程序人生中,留下最珍貴的記憶,盡管以後小編不一定從事安卓這個行業,代碼世界裏,非常多種事,有的甜蜜,有的溫馨,有的婉轉成歌。有的綿延不息,在這些故事裏,我們唯一的共通之處就是,某年,某月,某個波瀾不驚的日子裏。以前非常愛非常愛你。愛你--這段實習的日子裏,安卓帶給小編的種種的驚喜。
接下來。小編就和小夥伴們分享一下這兩天小編研究的極光推送。再此感謝鄭博小朋友的耐心指導,首先,我們來了解一下什麽是極光推送。小編剛聽到這個名字,哇哦,這是什麽呢?聽著就低調奢華有內涵,還極光推送?是要用到光麽?小編又土鱉了,咳咳,所謂的極光推送呢就是一個面向普通開發人員開放的。免費的第三方消息推送服務。接著小編就和小夥伴分享一下。怎樣實現極光推送這個小功能。
第一步,創建帳號進入極光推送後。首先顯示的是創建應用的界面。填上你的應用程序的名稱,以及 Android包名這二頂就能夠了,Portal上創建應用。填寫對應的應用名稱,和應用的包名,註意這裏的包名要和project裏面的名稱保持一致。例如以下圖所看到的:
第二步。點擊 ”下載應用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。還是那句話,對於小編來說,既是挑戰更是機遇,由於知識都是相通的,再者來說。在小編的程序人生中。留下最珍貴的記憶。盡管以後小編不一定從事安卓這個行業。代碼世界裏。非常多種事,有的甜蜜,有的溫馨,有的婉轉成歌,有的綿延不息,在這些故事裏,我們唯一的共通之處就是,某年,某月,某個波瀾不驚的日子裏,以前非常愛非常愛你!愛你--這段實習的日子裏,安卓帶給小編的種種的驚喜,實習生活。故事仍在繼續`(*∩_∩*)′......
極光推送---安卓Demo