极光推送配置

来源:互联网 发布:linux是哪个国家的 编辑:程序博客网 时间:2024/06/05 03:28

相信你们都已经注册完极光推送并拿到的APPKEY了,不说废话直接看代码!这是我清单文件中的配置

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="项目包名"    android:versionCode="309"    android:versionName="3.0.9">    <uses-sdk        android:minSdkVersion="14"        android:targetSdkVersion="23" />    <!--腾讯bugly异常检测工具-->    <uses-permission android:name="android.permission.READ_PHONE_STATE" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.READ_LOGS" />    <!-- Required -->    <permission        android:name="项目包名.permission.JPUSH_MESSAGE"        android:protectionLevel="signature" />    <!--拨打电话的权限-->    <!--<user-permission android:name="android.premission.CALL_PHONE" />-->    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.CAMERA" />    <!-- Required -->    <uses-permission android:name="项目包名.permission.JPUSH_MESSAGE" />    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />    <uses-permission android:name="android.permission.WAKE_LOCK" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.VIBRATE" />    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />    <uses-permission android:name="android.permission.WRITE_SETTINGS" />    <!-- 访问网络 -->    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <!-- Miaodou SDK Begin -->    <uses-permission android:name="android.permission.BLUETOOTH" />    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />    <!-- vibrate -->    <uses-permission android:name="android.permission.VIBRATE" />    <uses-permission android:name="andorid.permission.MONUN_UNMOUNT_FILESYSTEMS" />    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />    <!-- Optional. Required for location feature -->    <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" />    <application        android:name=".MyApplication"        android:allowBackup="true"        android:icon="@mipmap/login"        android:label="@string/app_name"        android:roundIcon="@mipmap/login"        android:supportsRtl="true"        android:theme="@style/AppTheme">              <activity android:name=".home.HomepageActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter>        </activity>        <activity            android:name=".activity.SurpriseActivity"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />        <activity            android:name=".activity.SucceedActivity"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />        <activity            android:name=".activity.PopupWindowActivity"            android:screenOrientation="portrait"            android:theme="@android:style/Theme.Translucent.NoTitleBar" />        <!--楚汉+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++结界-->        <!-- Required SDK 核心功能-->        <!-- 可配置android:process参数将PushService放在其他进程中 -->        <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>        <!-- since 3.0.9 Required SDK 核心功能-->        <provider            android:name="cn.jpush.android.service.DataProvider"            android:authorities="项目包名.DataProvider"            android:exported="true" />        <!-- 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="项目包名" />            </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" />                <category android:name="项目包名" />            </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核心功能-->        <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="项目包名" />            </intent-filter>        </activity>        <!-- SDK核心功能-->        <activity            android:name="cn.jpush.android.ui.PopWinActivity"            android:configChanges="orientation|keyboardHidden"            android:exported="false"            android:theme="@style/MyDialogStyle">            <intent-filter>                <category android:name="android.intent.category.DEFAULT" />                <category android:name="项目包名" />            </intent-filter>        </activity>        <!-- Required SDK核心功能-->        <service            android:name="cn.jpush.android.service.DownloadService"            android:enabled="true"            android:exported="false"></service>        <!-- Required SDK核心功能-->        <receiver android:name="cn.jpush.android.service.AlarmReceiver" />        <!-- Required since 3.0.7 -->        <!-- 新的tag/alias接口结果返回需要开发者配置一个自定的广播 -->        <!-- 该广播需要继承JPush提供的JPushMessageReceiver类, 并如下新增一个 Intent-Filter -->        <!--<receiver-->        <!--android:name="com.example.dell.hshapp.wxapi.MyReceiver"-->        <!--android:enabled="true" >-->        <!--<intent-filter>-->        <!--<action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />-->        <!--<category android:name="com.example.dell.hshapp" />-->        <!--</intent-filter>-->        <!--</receiver>-->
        <!-- User defined. 用户自定义的广播接收器-->        <receiver            android:name="com.example.dell.hshapp.wxapi.MyReceiver"            android:enabled="true">            <intent-filter>                <!--Required 用户注册SDK的intent-->                <action android:name="cn.jpush.android.intent.REGISTRATION" />                <!--Required 用户接收SDK消息的intent-->                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />                <!--Required 用户接收SDK通知栏信息的intent-->                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />                <!--Required 用户打开自定义通知栏的intent-->                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />                <!-- 接收网络变化 连接/断开 since 1.6.3 -->                <action android:name="cn.jpush.android.intent.CONNECTION" />                <category android:name="项目包名" />            </intent-filter>        </receiver>        <!-- Required. For publish channel feature -->        <!-- JPUSH_CHANNEL 是为了方便开发者统计APK分发渠道。-->        <!-- 例如: -->        <!-- 发到 Google Play 的APK可以设置为 google-play; -->        <!-- 发到其他市场的 APK 可以设置为 xxx-market。 -->        <!-- 目前这个渠道统计功能的报表还未开放。-->        <meta-data            android:name="JPUSH_CHANNEL"            android:value="developer-default" />        <!-- Required. AppKey copied from Portal -->        <meta-data            android:name="JPUSH_APPKEY"            android:value="极光推送获取到的appkey值" />        <!--楚汉+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++结界-->        <activity android:name=".activity.ShlashActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter>        </activity>        <activity android:name=".activity.WebViewActivity" />        <!--微信支付-->        <activity            android:name=".wxapi.WXPayEntryActivity"            android:configChanges="keyboardHidden|orientation|screenSize"            android:exported="true"            android:launchMode="singleTop"            android:screenOrientation="portrait" />        <receiver android:name=".wxapi.AppRegister">            <intent-filter>                <action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />            </intent-filter>        </receiver>        <!--没有安装支付宝跳转到网页上-->        <activity            android:name="com.alipay.sdk.app.H5PayActivity"            android:configChanges="orientation|keyboardHidden|navigation|screenSize"            android:exported="false"            android:screenOrientation="behind"            android:windowSoftInputMode="adjustResize|stateHidden"></activity>        <activity            android:name="com.alipay.sdk.app.H5AuthActivity"            android:configChanges="orientation|keyboardHidden|navigation"            android:exported="false"            android:screenOrientation="behind"            android:windowSoftInputMode="adjustResize|stateHidden"></activity>    </application></manifest>
下面是在代码中的配置
public class MyApplication extends Application {    public static MyApplication instance;    public static Boolean logSwitch = true;//日志开关    public static Handler handler;    public static final String APP_ID = "微信的app_id";    public static IWXAPI iwxapi;    private WindowManager.LayoutParams wmParams=new WindowManager.LayoutParams();    public WindowManager.LayoutParams getMywmParams(){        return wmParams;    }    //     单例实现返回MyApplication实例    public static MyApplication getInstance() {        if (null == instance) {            instance = new MyApplication();        }        return instance;    }    // 在application的onCreate中初始化    @Override    public void onCreate() {        super.onCreate();        x.Ext.init(this);        x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.        handler = new Handler();        regToWx();
//这两行就是配置极光推送的        JPushInterface.setDebugMode(true);    // 设置开启日志,发布时请关闭日志        JPushInterface.init(this);            // 初始化 JPush
//这个是腾讯bugly,错误异常和用户使用的监听,你们不用理会        CrashReport.initCrashReport(getApplicationContext(), "", true);    }    private void regToWx() {        iwxapi = WXAPIFactory.createWXAPI(this, APP_ID, true);        iwxapi.registerApp(APP_ID);    }}
下面我们要在build中配置
apply plugin: 'com.android.application'android {    compileSdkVersion 25    buildToolsVersion "25.0.1"    defaultConfig {        applicationId ""        minSdkVersion 15        targetSdkVersion 25        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        ndk {            //选择要添加的对应cpu类型的.so库。            abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86'            // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'        }        manifestPlaceholders = [                JPUSH_PKGNAME: applicationId,                JPUSH_APPKEY : "", //JPush上注册的包名对应的appkey.                JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.        ]    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    repositories {        maven { url "https://jitpack.io" }    }}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.1.0'    //    compile 'com.android.support:appcompat-v7:23.4.0'    compile 'com.android.support.constraint:constraint-layout:1.0.2'    testCompile 'junit:junit:4.12' 
    compile 'cn.jiguang.sdk:jpush:3.0.9'  // 此处以JPush 3.0.9 版本为例。    compile 'cn.jiguang.sdk:jcore:1.1.7'  // 此处以JCore 1.1.7 版本为例。   
配置到此就完事了,如果有什么不明白可以和我交流,我的QQ号811839095,拜拜,祝你好运

原创粉丝点击