DCloud_App_Array
DCloud_App_Array
  • 发布:2015-05-25 11:24
  • 更新:2020-06-03 15:31
  • 阅读:60021

Android平台离线打包推送插件配置

分类:HTML5+

个推推送平台配置

需要拷贝的文件

需要引入工程的jar/aar文件
需要将以下jar/aar文件放到工程的libs目录下

路径 文件
SDK\libs(1.9.9.52372之前) aps.jar, aps-igexin.jar, GetuiSDK2.10.3.5.jar
SDK\libs(1.9.9.52372之后) aps-release.aar, aps-igexin-release.aar

需要将以下so文件放到工程的libs\armeabi目录下(1.9.9.52372版本之后不需要设置此项)

路径 文件名
SDK\libs\armeabi libgetuiext2.so
SDK\libs\armeabi-v7a libgetuiext2.so
SDK\libs\x86 libgetuiext2.so

需要引入工程的资源文件
需要将以下文件放到工程的res/layout目录下(1.9.9.52372版本之后不需要设置此项)

路径 文件名
SDK\res\layout getui_notification.xml
SDK\res\raw keep.xml

Androidmainfest.xml文件需要修改的项

需要在application节点前添加权限
因Android L(android 5.0)系统自身限制,多个应用安装时,如果拥有同一个Service权限,会导致权限冲突,只能安装一个带有此权限的应用。对此,个推SDK在声明自定义权限时需要添加apk的包名以避免和其他使用个推的应用冲突。

<uses-permission android:name="android.permission.INTERNET"/>  
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
<uses-permission android:name="android.permission.WAKE_LOCK"/>  
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>  
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
<uses-permission android:name="android.permission.VIBRATE"/>  
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
<uses-permission android:name="android.permission.CALL_PHONE"/>  
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>  
<uses-permission android:name="getui.permission.GetuiService.$你的APK包名"/>  
<permission android:name="getui.permission.GetuiService.$你的APK包名" android:protectionLevel="normal"/>  

<application>节点下配置如下代码

        <meta-data android:name="PUSH_APPID" android:value="$你自己的APPID"/>  
        <meta-data android:name="PUSH_APPKEY" android:value="$你的appkey"/>  
        <meta-data android:name="PUSH_APPSECRET" android:value="$你的appsecret"/>  
        <service  
            android:name="com.igexin.sdk.PushService"  
            android:exported="true"  
            android:label="NotificationCenter"  
            android:process=":pushservice">  
            <intent-filter>  
                <action android:name="com.igexin.sdk.action.service.message"/>  
            </intent-filter>  
        </service>  
        <receiver android:name="com.igexin.sdk.PushReceiver">  
            <intent-filter>  
                <action android:name="android.intent.action.BOOT_COMPLETED"/>  
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>  
                <action android:name="android.intent.action.USER_PRESENT"/>  
                <action android:name="com.igexin.sdk.action.refreshls"/>  
                <action android:name="android.intent.action.MEDIA_MOUNTED"/>  
                <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>  
                <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>  
            </intent-filter>  
        </receiver>  
        <activity  
            android:name="com.igexin.sdk.PushActivity"  
            android:excludeFromRecents="true"  
            android:exported="false"  
            android:process=":pushservice"  
            android:taskAffinity="com.igexin.sdk.PushActivityTask"  
            android:theme="@android:style/Theme.Translucent.NoTitleBar"/>  
        <activity  
            android:name="com.igexin.sdk.GActivity"  
            android:excludeFromRecents="true"  
            android:exported="true"  
            android:process=":pushservice"  
            android:taskAffinity="com.igexin.sdk.PushActivityTask"  
            android:theme="@android:style/Theme.Translucent.NoTitleBar"/>  
        <receiver android:name="io.dcloud.feature.apsGt.GTNotificationReceiver">  
            <intent-filter>  
                <action android:name="android.intent.action.BOOT_COMPLETED"/>  
                <action android:name="填写APK的包名.__CREATE_NOTIFICATION"/>  
                <action android:name="填写APK的包名.__REMOVE_NOTIFICATION"/>  
                <action android:name="填写APK的包名.__CLEAR_NOTIFICATION"/>  
                <action android:name="填写APK的包名.__CLILK_NOTIFICATION"/>  
            </intent-filter>  
        </receiver>  
        <service  
            android:name="io.dcloud.feature.apsGt.GTNormalIntentService"/>  

dcloud_properties.xml需要添加如下代码
dcloud_properties.xml文件在assets/data目录下
features节点下添加

<feature name="Push" value="io.dcloud.feature.aps.APSFeatureImpl"><module name="igexin" value="io.dcloud.feature.apsGt.GTPushService"/></feature>

services节点下添加

<service  
            name="push"  
            value="io.dcloud.feature.aps.APSFeatureImpl" />

小米推送

需要拷贝的文件

需要将以下jar/aar文件拷贝到工程中

路径 文件
SDK\libs(1.9.9.52372之前) aps.jar,aps-xiaomi.jar,MiPush_SDK_Client_3_1_2.jar,
SDK\libs(1.9.9.52372之后) aps-release.aar, aps-xiaomi-release.aar

Androidmainfest.xml文件需要修改的项

需要在application节点前添加权限

        <uses-permission android:name="android.permission.INTERNET"/>  
        <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_PHONE_STATE"/>  
        <uses-permission android:name="android.permission.GET_TASKS"/>  
        <uses-permission android:name="android.permission.VIBRATE"/>  
        <uses-permission android:name="android.permission.GET_TASKS"/>  
        <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>  
<uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO"/>   
<permission android:name="填写APK的包名.permission.MIPUSH_RECEIVE" android:protectionLevel="signature"/>  
<uses-permission android:name="填写APK的包名.permission.MIPUSH_RECEIVE"/>

application节点下配置如下代码

<service android:enabled="true" android:process=":pushservice" android:name="com.xiaomi.push.service.XMPushService"/>  
<service android:name="com.xiaomi.push.service.XMJobService" android:enabled="true" android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE" android:process=":pushservice"/>  
<service android:enabled="true" android:exported="true" android:name="com.xiaomi.mipush.sdk.PushMessageHandler"/>  
<service android:enabled="true" android:name="com.xiaomi.mipush.sdk.MessageHandleService"/>  
<receiver android:exported="true" android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver">  
<intent-filter>  
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>  
<category android:name="android.intent.category.DEFAULT"/>  
</intent-filter>  
</receiver>  
<receiver android:exported="false" android:process=":pushservice" android:name="com.xiaomi.push.service.receivers.PingReceiver">  
<intent-filter>  
<action android:name="com.xiaomi.push.PING_TIMER"/>  
</intent-filter>  
</receiver>  
<receiver android:exported="true" android:name="io.dcloud.feature.apsXm.XMMessageReceiver">  
<intent-filter>  
<action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE"/>  
</intent-filter>  
<intent-filter>  
<action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED"/>  
</intent-filter>  
<intent-filter>  
<action android:name="com.xiaomi.mipush.ERROR"/>  
</intent-filter>  
</receiver>  
<receiver android:exported="true" android:name="io.dcloud.feature.apsXm.XMNotificationReceiver">  
<intent-filter>  
<action android:name="android.intent.action.BOOT_COMPLETED"/>  
<action android:name="%填写APK的包名%.__CREATE_NOTIFICATION"/>  
<action android:name="%填写APK的包名%.__REMOVE_NOTIFICATION"/>  
<action android:name="%填写APK的包名%.__CLEAR_NOTIFICATION"/>  
<action android:name="%填写APK的包名%.__CLILK_NOTIFICATION"/>  
</intent-filter>  
</receiver>  
<meta-data android:name="PUSH_APPID" android:value="_%小米推送的APPID%"/>  
<meta-data android:name="PUSH_APPKEY" android:value="_%小米推送的APPKEY%"/>

dcloud_properties.xml需要添加如下代码

dcloud_properties.xml文件在ADT工程assets/data目录下
Features节点下添加

<feature name="Push" value="io.dcloud.feature.aps.APSFeatureImpl">  
<module name="xiaomi" value="io.dcloud.feature.apsXm.XMPushService"/>  
</feature>

Service节点下添加

<service name="push" value="io.dcloud.feature.aps.APSFeatureImpl"/>
6 关注 分享
DIOGO 荼蘼 kaiven 望月孤魂 Trust 酷狗音乐人

要回复文章请先登录注册

逗逗水

逗逗水

极光推送怎么配置?我知道拓展第三方插件需要离线打包,目前是在android studio 环境上开发,HBuilder-Integrate-AS\app\libs下的jar包是不是要去极光官网上下载?发送通知栏消息的相关js,是否有demo?望回复
2017-11-16 09:53
x***@163.com

x***@163.com

可以了,貌似跟手机有关,我开始用的华为P7,怎么试,怎么不行,后来换成小米,就能收到推送的消息了
2017-10-16 18:41
x***@163.com

x***@163.com

回复 骁骑 :
还有,我用你们的HBuilder-Integrate的工程来跑,然后都替换成我的密钥信息和包名,但是调用个推的的服务时,发现是返回AppidError错误
2017-10-16 16:38
x***@163.com

x***@163.com

回复 骁骑 :
能不能提供一个能运行推送的demo,我在我本地试下。
我从你们线上下载的最新一个SDK包,原封不动打成apk,也是不行,这个应该是打包的keystore不对
2017-10-16 16:16
x***@163.com

x***@163.com

回复 骁骑 :
是用ADT打的包
2017-10-16 16:01
骁骑

骁骑

回复 x***@163.com :
Android studio打包还是ADT打包的?
如果是Android studio打包so库文件需要放到默认的JNIlibs目录下,如果放到其他目录下则需要在gradle文件中进行配置, 另外检查一下你针对的cpu类型有没有对应的so文件
2017-10-16 15:35
x***@163.com

x***@163.com

回复 骁骑 :
都已经按照上面的步骤,都改了我的包名,也替换了教程上面提到的jar包,小米推送和那个MKeyPush都禁止了,手机的通知管理里面也允许我的app应用接收消息,设备也添加了信任
照样不行
2017-10-16 15:22
骁骑

骁骑

回复 x***@163.com :
检查一下Androidmanifest.xml文件里边有几处配置的地方需要改成你apk的包名
还有检查一下 个推的so库是否导入到工程里
2017-10-16 15:20
x***@163.com

x***@163.com

我的照上面做了,但是client id一直不上线,不知道怎么回事
2017-10-16 14:42
3***@qq.com

3***@qq.com

回复 1***@163.com :
j解决没 老哥
2017-09-29 16:40