安卓极光推送集成

1:登录极光推送官网 https://www.jiguang.cn/(未注册的先注册)。

2:登录后点用户到极光开发者服务 https://www.jiguang.cn/dev/#/app/list#dev,点击创建应用。(注意包名要和项目包名一致)

安卓极光推送集成_第1张图片

3点击推送设置下载demo  https://www.jiguang.cn/dev/#/app/c113c182cc5e60a1a78bfef1/pushEdit(下载解压)

安卓极光推送集成_第2张图片

4:把解压的包里面的libs内容复制到项目的libs里面(注意需要把里面的两个jar文件添加到mode的build.gradle里面)

//libs里面的


//添加后build里面会显示


5:把res里面的drawable文件和layout文件复制到项目里面,注意values里面的文件建议打开文件,把文件里面的内容复制到对应的文件里面(不要直接覆盖)。

6:在mode的build.gradle里面的Android花括号里面添加

//极光推送-----------------
sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}

//例如

注意 applicationId "com.jpeng.ssc"的对应包名

android {
    compileSdkVersion 26
    buildToolsVersion "27.0.0"

    //极光推送-----------------
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
    //--------------------------
    defaultConfig {
        applicationId "com.jpeng.ssc"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

7:把src里面的文件复制到项目的src里面(建议建个文件夹放推送的文件)

//MainActivity可以不复制;如果有自己的Application可以不复制,(但是需要把注册的代码复制到自己的)

安卓极光推送集成_第3张图片

注意:MainActivity添加代码

//极光推送------------
public static boolean isForeground = false;

@Override
protected void onResume() {
    isForeground = true;
    super.onResume();
}


@Override
protected void onPause() {
    isForeground = false;
    super.onPause();
}
//--------------------

8:在MyReceive里面吧

//send msg to MainActivity
public static final String MESSAGE_RECEIVED_ACTION = "com.example.jpushdemo.MESSAGE_RECEIVED_ACTION";
public static final String KEY_EXTRAS = "extras";
public static final String KEY_MESSAGE = "message";

private void processCustomMessage(Context context, Bundle bundle) {
    if (MainActivity.isForeground) {
        String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
        String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
        Intent msgIntent = new Intent(MESSAGE_RECEIVED_ACTION);
        msgIntent.putExtra(KEY_MESSAGE, message);
        if (!ExampleUtil.isEmpty(extras)) {
            try {
                JSONObject extraJson = new JSONObject(extras);
                if (extraJson.length() > 0) {
                    msgIntent.putExtra(KEY_EXTRAS, extras);
                }
            } catch (JSONException e) {

            }

        }
        LocalBroadcastManager.getInstance(context).sendBroadcast(msgIntent);
    }
}
//注意要复制下载demo里面的而不是复制我上面的(我上面的包名不一致)
9:TestActivity是 点击消息后,跳转到的页面(可以自定义需求的页面效果)

10:AndroidManifest里面

把demo里面AndroidManifest的权限和application里面注册的activity复制(注意复制后的activity的name会报错,修改下路径就可以了)

例如:


    android:name="com.jpeng.ssc.permission.JPUSH_MESSAGE"
    android:protectionLevel="signature" />


android:name="com.jpeng.ssc.permission.JPUSH_MESSAGE" />
android:name="android.permission.RECEIVE_USER_PRESENT" />
android:name="android.permission.INTERNET" />
android:name="android.permission.WAKE_LOCK" />
android:name="android.permission.READ_PHONE_STATE" />
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
android:name="android.permission.READ_EXTERNAL_STORAGE" />
android:name="android.permission.VIBRATE" />
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
android:name="android.permission.ACCESS_NETWORK_STATE" />
android:name="android.permission.WRITE_SETTINGS" />
android:name="android.permission.ACCESS_WIFI_STATE" />


android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
android:name="android.permission.ACCESS_COARSE_LOCATION" />
android:name="android.permission.CHANGE_WIFI_STATE" />
android:name="android.permission.ACCESS_FINE_LOCATION" />
android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
android:name="android.permission.CHANGE_NETWORK_STATE" />
android:name="android.permission.GET_TASKS" />



    android:name="MyApp"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    android:name="com.jpeng.ssc.MainActivity">
        
            android:name="android.intent.action.MAIN" />

            android:name="android.intent.category.LAUNCHER" />
        
    


    //《极光推送
    
            android:name="jpush.PushSetActivity"
        android:label="@string/app_name" />
    
            android:name="jpush.SettingActivity"
        android:label="@string/app_name" />

    
            android:name="jpush.TestActivity"
        android:exported="false">
        
            android:name="jpush.testAction" />
            android:name="jpush.testCategory" />
        
    

    
            android:name="cn.jpush.android.ui.PopWinActivity"
        android:exported="false"
        android:theme="@style/MyDialogStyle" />

    
            android:name="cn.jpush.android.ui.PushActivity"
        android:configChanges="orientation|keyboardHidden"
        android:exported="false"
        android:theme="@android:style/Theme.NoTitleBar">
        
            android:name="cn.jpush.android.ui.PushActivity" />

            android:name="android.intent.category.DEFAULT" />
            android:name="com.jpeng.ssc" />
        
    

    
    
            android:name="cn.jpush.android.service.PushService"
        android:exported="false"
        android:process=":mult">
        
            android:name="cn.jpush.android.intent.REGISTER" />
            android:name="cn.jpush.android.intent.REPORT" />
            android:name="cn.jpush.android.intent.PushService" />
            android:name="cn.jpush.android.intent.PUSH_TIME" />
        
    
    
            android:name="cn.jpush.android.service.DataProvider"
        android:authorities="com.jpeng.ssc.DataProvider"
        android:exported="false" />

    
    
            android:name="cn.jpush.android.service.DaemonService"
        android:enabled="true"
        android:exported="true">
        
            android:name="cn.jpush.android.intent.DaemonService" />
            android:name="com.jpeng.ssc" />
        

    
    
            android:name="cn.jpush.android.service.DownloadProvider"
        android:authorities="com.jpeng.ssc.DownloadProvider"
        android:exported="true" />
    
            android:name="cn.jpush.android.service.PushReceiver"
        android:enabled="true"
        android:exported="false">
        android:priority="1000">
            android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   
            android:name="com.jpeng.ssc" />
        
        
            android:name="android.intent.action.USER_PRESENT" />
            android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        
        
        
            android:name="android.intent.action.PACKAGE_ADDED" />
            android:name="android.intent.action.PACKAGE_REMOVED" />

            android:scheme="package" />
        
    

    
            android:name="cn.jpush.android.service.AlarmReceiver"
        android:exported="false" />


    
            android:name="jpush.MyReceiver"
        android:enabled="true"
        android:exported="false">
        
            android:name="cn.jpush.android.intent.REGISTRATION" /> 
            android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> 
            android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> 
            android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> 
            android:name="cn.jpush.android.intent.CONNECTION" />
            android:name="com.jpeng.ssc" />
        
    

    // User defined. For test only 用户自定义接收消息器,3.0.7开始支持,目前新tag/alias接口设置结果会在该广播接收器对应的方法中回调
    android:name="jpush.MyJPushMessageReceiver">
        
            android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
            android:name="com.jpeng.ssc" />
        
    
    // 注册的key
            android:name="JPUSH_CHANNEL"
        android:value="developer-default" />
            android:name="JPUSH_APPKEY"
        android:value="13e2240e228518983188dd00" /> 
    //极光推送》


10:运行项目,登录极光账户发送通知测试是否接受到信息。

安卓极光推送集成_第4张图片


注意:如果想修改接受信息时显示的图标可以在  复制需要的图片到文件夹drawable-hdpi里面名字必须为jpush_notification_icon

你可能感兴趣的:(工具)