昨天整了下百度推送升級。
之前項目已經集成了百度推送,但是用eclipse開發的。所以需要做一些配置上的修改。
其實百度推送的文檔[1]已經寫的很清楚了。可是我還是遇到這種因為粗心產生的問題。所以一再提醒一下自己,一定得小心小心再小心。
首先,我們要在AndroidManifest.xml配置百度權限:
<!-- Push service 運行需要的權限 -->
<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.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
pushservice-最新版本號.jar
和so庫。這里,我推薦把帶arm的文件夾都拷貝到libs目錄下。
百度建議在src/main下新建jniLibs目錄,把這些文件夾拷過去,也可以,但在build.gradle里要配置下:
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
如果,你要拷貝到libs目錄下:
需要在build.gradle里這樣配置:
// task copyNativeLibs(type: Copy) {
// from fileTree(dir: 'libs', include: '*/*.so') into 'build/lib'
// }
// tasks.withType(JavaCompile) {
// compileTask -> compileTask.dependsOn copyNativeLibs
// }
// clean.dependsOn 'cleanCopyNativeLibs'
// tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
// pkgTask.jniFolders = [new File(buildDir, 'lib')]
// }
這里我注釋了。
ok,接下來,就是在AndroidManiefest.xml增加各種百度的Service,Recevier了。
然后,百度推送過來的消息,你可以自己定義一個BroadCastRecever接收的。這個在百度推送文檔和demo里也有介紹。這里就不贅述了。
這個,我特別建議您直接拷貝百度文檔里的配置。
我會跳進的坑就是:
so庫總是導入不成功。manifest.xml的配置缺失。
希望可以幫助到你。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。