Android-推送(极光)
–首先要注册一个极光帐号 然后在 创建应用
下面是创建好应用
然后在推送
下面是手机效果图:
接下来在Android Studio中编写
压缩包在云盘里http://pan.baidu.com/s/1jIyp1no
把项目切换成Project
把压缩包libs目录下的文件(全部)复制到项目的libs目录下
选择后2个JAR包–然后右键 Add As Library…
然后在压缩包res下面的drawable-hdpi文件夹放到项目的如下图:
然后在压缩包res下面的layout里的2个XML放到项目的如下图:
然后在压缩包res下面的values里的1个XML放到项目的如下图:
然后在build.gradle里添加配置
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
//只有下面这几行
//来源
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
//只有上面这几行
defaultConfig {
applicationId "com.dzz.android33_push"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.1'
testCompile 'junit:junit:4.12'
compile files('libs/jcore-android_v1.1.0.jar')
compile files('libs/jpush-android_v3.0.1.jar')
}
然后打开压缩包里 AndroidManifest.xml 文件
在里面复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dzz.android33_push">
/复制这个以下/
<!-- Required -->
//在AndroidManifest中使用 ${applicationId} 引用gradle中定义的包名
<permission android:name="${applicationId}.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
<!-- Required 一些系统要求的权限,如访问网络等-->
<!--官方定义的权限,允许应用接收JPUSH内部代码发送的广播消息。-->
<uses-permission android:name="com.dzz.android33_push.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.ACCESS_WIFI_STATE" />
<!-- Optional for location -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<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" />
<uses-permission android:name="android.permission.GET_TASKS" />
///复制这个以上//
<!-- 配置一下 MyApplication-->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:name=".MyApplication" //还要配置MyApplication
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
///复制这个以上//
<!-- Rich push 核心功能 since 2.0.6-->
<activity
android:name="cn.jpush.android.ui.PopWinActivity"
android:exported="false"
android:theme="@style/MyDialogStyle"></activity>
<!-- Required SDK核心功能-->
<activity
android:name="cn.jpush.android.ui.PushActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="false"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="cn.jpush.android.ui.PushActivity" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.dzz.android33_push" />
</intent-filter>
</activity>
<!-- Required SDK核心功能-->
<service
android:name="cn.jpush.android.service.DownloadService"
android:enabled="true"
android:exported="false"></service>
<!-- Required SDK 核心功能-->
<!-- 可配置android:process参数将PushService放在其他进程中 -->
<service android:name="cn.jpush.android.service.PushService" android:process=":mult">
<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>
<!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->
<!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->
<service
android:name="cn.jpush.android.service.DaemonService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="cn.jpush.android.intent.DaemonService" />
<category android:name="com.dzz.android33_push" />
</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.dzz.android33_push" />
</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"
android:exported="false" />
<!-- Required . Enable it you can get statistics data with channel -->
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default"/>
<meta-data android:name="JPUSH_APPKEY" android:value="411c59a13cd6c21734ec253e"/>
//411c59a13cd6c21734ec253e 如下图 复制AppKey:
<!-- </>值来自开发者平台取得的AppKey-->
///复制这个以上//
</application>
</manifest>
还要新建一个MyApplication Acticity
package com.dzz.android33_push;
import android.app.Application;
import cn.jpush.android.api.JPushInterface;
/**
* Created by 朝花偏不夕拾 on 2017/3/3.
*/
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
}
编写完后在手机上面运行
下面是效果图:
项目压缩包:http://pan.baidu.com/s/1eSBoNzO