Eclipse集成步骤
所有文档
menu

移动APP推送服务

Eclipse集成步骤

产品详情立即体验

如果使用的是Android Studio集成,则可以跳过这部分内容,直接查看编写集成代码

下载sdk并解压

请向商务(spp_support@baidu.com)申请集成SDK,拿到SDK后进行解压,解压后找到release_techain_x-x-x-xxx_xxxx.jar.zip的文件,再次解压生成release-jar文件夹,需要从该文件夹中取出需要集成的文件。

再次解压后的SDK资料包结构如下:

release_techain_3-1-8-221_0531  
├── arm64-v8a  
│   ├── libtechain.so  
│   └── libtechain_.a  
├── armeabi-v7a  
│   ├── libtechain.so  
│   └── libtechain_.a  
├── release-jar(Eclipse集成需要用到文件夹)  
│   ├── AndroidManifest.xml(查看需要在AndroidManifest文件中增加配置的权限和组件)  
│   ├── R.txt  
│   ├── libs  
│   │   └── armeabi  
│   │       └── libtechain.so (把该so文件导入到指定目录libs/armeabi下)  
│   ├── proguard.txt  
│   ├── res(将res目录下的文件导入到应用的res目录下的相应资源文件夹中)  
│   │   ├── drawable  
│   │   │   ├── n_b_s0.xml  
│   │   │   ├── n_b_s1.xml  
│   │   │   ├── n_b_s2.xml  
│   │   │   └── n_b_s3.xml  
│   │   ├── drawable-hdpi-v4  
│   │   │   └── b_b.png  
│   │   ├── drawable-mdpi-v4  
│   │   │   └── b_b.png  
│   │   ├── drawable-xhdpi-v4  
│   │   │   └── b_b.png  
│   │   ├── drawable-xxhdpi-v4  
│   │   │   └── b_b.png  
│   │   ├── layout  
│   │   │   └── a_a.xml(sdk需要的布局文件)  
│   │   └── values  
│   │       └── values.xml  
│   └── techain_3-1-8-221_0531.jar(把该jar文件导入到指定目录libs下)  
├── release_techain_3-1-8-221_0531.aar  
├── release_techain_3-1-8-221_0531.jar.zip  
└── x86  
    ├── libtechain.so  
    └── libtechain_.a  

导入SDK

1)从SDK中取出techain.jar,libtechain.so文件导入到指定目录libs下,并导入res目录下的相应资源文件,如下图所示:

如果App自身显式兼容多种ABI,如v7a,v8a,X86等,需要注意把我们提供的ZIP包中的相应so包手动置入.

2)AndroidManifest配置

开发者可以按照需求,添加如下权限配置:

<!-- 可选权限,慧推地理围栏功能需要的权限,如果要使用地理围栏功能,开发者需要主动配置并申请以下权限 ,如果不使用地理围栏,可以不配置以下权限,慧推SDK不会强制获取地理位置信息-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 必选权限,消息推送需要的权限 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 慧推SDK进行多进程判断需要的权限,慧推SDK不会采集后台应用信息 -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 华为和荣耀设备,收到通知消息后展示应用角标信息使用 -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" />

在AndroidManifest.xml中需要正确配置SDK所需的组件。请在<application>标签内增加以下组件配置:

<activity   
    android:name="com.baidu.techain.TechainActivity"
    android:exported="true"
    android:theme="@style/BD_TranslucentTheme"
    android:excludeFromRecents="true"
    android:launchMode="standard">
    <intent-filter>
        <action  android:name="com.baidu.action.Techain.VIEW" />
        <category  android:name="com.baidu.category.techain" />
        <category  android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    <meta-data  android:name="acsr"android:value="t"></meta-data>
</activity>
<receiver	android:name="com.baidu.techain.TechainReceiver"	android:exported="false">
    <intent-filter>
        <action  android:name="com.baidu.action.Techain.VIEW" />
        <category	android:name="com.baidu.category.techain" />
        <category	android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    <intent-filter	android:priority="2147483647">
        <action	android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>
<provider	android:authorities=“应用包名+.techain.ac.provider"	android:name="com.baidu.techain.TechainProvider"	android:exported="true" />
<service
   android:name="com.baidu.techain.TechainService"
   android:exported="false">
    <intent-filter>
        <action	 android:name="com.baidu.action.Techain.VIEW" />
        <category	android:name="com.baidu.category.techain" />
        <category	android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</service>
<receiverandroid:name="com.baidu.sofire.THReceiver"android:exported="true">
</receiver>
<serviceandroid:name="com.baidu.sofire.THService"android:exported="true">
</service>
<serviceandroid:name="com.baidu.techain.push.TechainPushConnService">
</service>

防止混淆配置

如果您的工程启用了Proguard混淆,为了避免SDK被错误混淆导致功能异常,需要在混淆配置文件中添加如下配置:

-dontwarn	android.content.res.AssetManager
-dontwarn	android.content.pm.PackageParser
-dontwarn	android.content.pm.PackageParser$Package
-dontwarn	android.R$styleable

-keepclasseswithmembers  class  com.baidu.techain.jni.Asc{*;}
-keep	class	com.baidu.techain.ac.Callback{*;}
-keep	class	com.baidu.techain.ac.FI{*;}
-keepclasseswithmembers  class  com.baidu.sofire.push.TechainPushConnService{*;}
-keepclasseswithmembers  class  com.baidu.techain.ac.F{*;}
-keep	class	com.baidu.techain.ac.TH	{*;}
-keep	class	com.baidu.techain.ac.U	{*;}
-keep	class	com.baidu.techain.core.ApkInfo{*;}
-keep	class	com.baidu.techain.rp.Report	{
<methods>;
}
上一篇
Android-Studio集成步骤
下一篇
多进程支持