极光推送
来源:互联网 发布:淘宝退货赠品要退吗 编辑:程序博客网 时间:2024/04/27 17:05
接下来,小编就和小伙伴们分享一下这两天小编研究的极光推送,再此感谢郑博小朋友的耐心指导,首先,我们来了解一下什么是极光推送,小编刚听到这个名字,哇哦,这是什么呢?听着就低调奢华有内涵,还极光推送?是要用到光么?小编又土鳖了,咳咳,所谓的极光推送呢就是一个面向普通开发者开放的,免费的第三方消息推送服务。接着小编就和小伙伴分享一下,如何实现极光推送这个小功能。
第一步,创建帐号进入极光推送后,首先显示的是创建应用的界面。填上你的应用程序的名称,以及 Android包名这二顶就可以了,Portal上创建应用,填写相应的应用名称,和应用的包名,注意这里的包名要和工程里面的名称保持一致,如下图所示:
第二步,点击 ”下载应用Example “后,小伙伴将下载到一个 .zip 压缩文件。解压后,即看到一个同名目录。这个目录下,是一个 Android 项目里的所有文件。小伙伴们可以把官方的Demo下载下来参考参考,我们需要用到官方Demo里面的包文件,如下图所示:
第三步,我们在eclipse里创建一个Android的工厂,libs里面需要用到的相关文件拷贝到我们的demo里面,如下图所示:
第四步,我们来编写我们的Demo,由于小编初次接触Android,官网上关于极光推送的小例子,对于小编来说,看的也很吃力,在郑博小伙伴的帮助下,小编把官网上的Demo改造了一下,稍稍的简单了一丢丢,解下来,我们开始编写代码,首先我们来编写MainActivity里面的代码,如下图所示:
- <span style="font-size:18px;">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;
- }
- }
- </span>
第五步,我们来编写AndroidManifest.xml里面的代码,如下所示:
- <span style="font-size:18px;"><?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>
- </span>
第七步,我们来看看小编的手机,会有怎么样的奇迹,声明一下,下面这张图的颜值不是很高,小伙伴们就将就看一下哈:
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 极光推送
- 推送 、极光
- 极光推送
- 极光推送
- 极光推送
- 求字符串的最小周期
- Ubuntu 配置minicom
- mysql insert和前台显示乱码
- Android快速开发框架大全
- C/C++与内存相关的函数
- 极光推送
- Android修改应用的默认安装位置
- 工作一直没有进步怎么办?试试PDCA法则吧!
- 最长上升子序列
- UITextView 的使用
- GCD外传:dispatch_once(上)
- 黑马程序员--IOS基础第一天(C语言)
- char*,const char*和string的相互转换
- GRE写作必备句型