您的位置:首页 > 其它

JPUSH极光推送步骤

2017-03-23 13:23 253 查看


1.进入机关推送官网登录自己的极光账号,在首页创建应用,如图:

进入创建界面,输入对应的数据,如图:

2.项目导入jar包,如图:

3.导入so文件(so文件和jar文件不同,必须要在项目的 app/src/main目录下创建一个名叫jniLibs文件夹。将对应的so文件拷贝到该目录下。)拷贝后的项目目录结构如下图:

4.配置文件修改

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="您应用的包名"

    android:versionCode="300"

    android:versionName="3.0.0"

    >

    <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" />

    <!-- Required -->

    <permission

        android:name="您应用的包名.permission.JPUSH_MESSAGE" 

        android:protectionLevel="signature" />

    <!-- Required -->

    <uses-permission android:name="您应用的包名.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.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.WRITE_SETTINGS" /> 

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <!-- 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:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:name="Your Application Name">

        <!-- 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 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
4000
.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:theme="@android:style/Theme.NoTitleBar"

            android:exported="false" >

            <intent-filter>

                <action android:name="cn.jpush.android.ui.PushActivity" />

                <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" />

        <!-- User defined. 用户自定义的广播接收器-->

         <receiver

             android:name="您自己定义的Receiver"

             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"/>

    </application>

</manifest>

5.init 初始化SDK

// 初始化 JPush。如果已经初始化,但没有登录成功,则执行重新登录。

private void init(){

   JPushInterface.init(getApplicationContext());

}

6.定制一个本应用程序 Application 类

public class ExampleApplication extends Application {

@Override

    public void onCreate() {

        super.onCreate();

        JPushInterface.setDebugMode(true);

        JPushInterface.init(this);

    }

}

注意:

极光推送开发者账号中所起的包名必须和Android Studio中的包名相同

修改包名的操作步骤:

只需要在setting里面,把 compact empty middle packages 这个选项去掉,这样,我们的包的层次结构就分开了,这个时候我们就可以根据自己的需要去做相应的修改了。接着在build 文件中修改 applicationId 就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jpush