AndroidStudio接入信鸽推送常见问题(附安卓接入视频教程)
2017-05-31 23:36
901 查看
AndroidStudio接入信鸽推送常见问题(附安卓接入视频教程)
由于腾讯的信鸽推送只有Eclipse接入文档,本文附上AS接入教程(想看视频教程的直接拉到文末),并总结网上常见的问题包括消息接收、自定义通知栏等,官网上有的东西我就一笔带过了。1.在信鸽管理平台xg.qq.com注册,应用创建成功后,会得到APP专属的AccessId和AccessKey等信息。注册完成后,请下载最新版本的Android SDK到本地,并解压。
2.解压下载好的sdk文件,将解压后的libs文件夹下的所有jar包添加到AS项目中的libs目录下。其中里面带有一个support-v4包,如果你的项目中已经有v4包了,这里就不要再引入了,否则会报这样的错:Multiple dex files define Landroid/support/v4/xx!
3.在AS项目中,main目录下建一个jniLibs包,将解压后的Other-Platform-SO文件夹下的所有.so文件添加到jniLibs文件夹下。
4.修改清单文件manifests文件官网也有,具体如下:
<!--广播接收者中创建对话框需要加这个权限--> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 【必须】 信鸽SDK所需权限 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE" /> <!-- 【常用】 信鸽SDK所需权限 --> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- 【可选】 信鸽SDK所需权限 cab0 --> <uses-permission android:name="android.permission.RESTART_PACKAGES" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BATTERY_STATS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <!-- 【必须】 信鸽receiver广播接收 --> <!-- 【必须】 (2.30及以上版新增)展示通知的activity --> <activity android:name="com.tencent.android.tpush.XGPushActivity" android:theme="@android:style/Theme.Translucent" android:exported="false" > <intent-filter> <!-- 若使用AndroidStudio,请设置android:name="android.intent.action"--> <action android:name="android.intent.action" /> </intent-filter> </activity> <!-- 【必须】 信鸽receiver广播接收 --> <receiver android:name="com.tencent.android.tpush.XGPushReceiver" android:process=":xg_service_v3" > <intent-filter android:priority="0x7fffffff" > <!-- 【必须】 信鸽SDK的内部广播 --> <action android:name="com.tencent.android.tpush.action.SDK" /> <action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" /> <!-- 【必须】 系统广播:网络切换 --> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <!-- 【可选】 系统广播:开屏 --> <action android:name="android.intent.action.USER_PRESENT" /> <!-- 【可选】 一些常用的系统广播,增强信鸽service的复活机会,请根据需要选择。当然,你也可以添加APP自定义的一些广播让启动service --> <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" /> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> </intent-filter> <!-- 【可选】 usb相关的系统广播,增强信鸽service的复活机会,请根据需要添加 --> <intent-filter android:priority="0x7fffffff" > <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> <action android:name="android.intent.action.MEDIA_REMOVED" /> <action android:name="android.intent.action.MEDIA_CHECKING" /> <action android:name="android.intent.action.MEDIA_EJECT" /> <data android:scheme="file" /> </intent-filter> </receiver> <!-- 【必须】 信鸽service --> <service android:name="com.tencent.android.tpush.service.XGPushServiceV3" android:exported="true" android:persistent="true" android:process=":xg_service_v3" /> <!-- 【必须】 增强xg_service存活率 --> <service android:name="com.tencent.android.tpush.service.XGDaemonService" android:process=":xg_service_v3" /> <!-- 【可选】APP实现的Receiver,用于接收消息透传和操作结果的回调,请根据需要添加 --> <!-- YOUR_PACKAGE_PATH.CustomPushReceiver需要改为自己的Receiver: --> <receiver android:name=".receiver.MessageReceiver" android:exported="true" > <intent-filter> <!-- 接收消息透传 --> <action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" /> <!-- 监听注册、反注册、设置/删除标签、通知被点击等处理结果 --> <action android:name="com.tencent.android.tpush.action.FEEDBACK" /> </intent-filter> </receiver> <!-- 【必须】 通知service,其中android:name部分要改为当前包名 --> <service android:name="com.tencent.android.tpush.rpc.XGRemoteService" android:exported="true" > <intent-filter> <!-- 【必须】 请修改为当前APP名包.PUSH_ACTION,如demo的包名为:com.qq.xgdemo --> <action android:name="com.qq.xgdemo.PUSH_ACTION" /> </intent-filter> </service> <!-- 【必须】 【注意】authorities修改为 包名.AUTH_XGPUSH, 如demo的包名为:com.qq.xgdemo--> <provider android:name="com.tencent.android.tpush.XGPushProvider" android:authorities="com.qq.xgdemo.AUTH_XGPUSH" android:exported="true" /> <!-- 【必须】 【注意】authorities修改为 包名.TPUSH_PROVIDER, 如demo的包名为:com.qq.xgdemo--> <provider android:name="com.tencent.android.tpush.SettingsContentProvider" android:authorities="com.qq.xgdemo.TPUSH_PROVIDER" android:exported="false" /> <!-- 【必须】 【注意】authorities修改为 包名.TENCENT.MID.V3, 如demo的包名为:com.qq.xgdemo--> <provider android:name="com.tencent.mid.api.MidProvider" android:authorities="com.qq.xgdemo.TENCENT.MID.V3" android:exported="true" > </provider> <!-- 【必须】 请将YOUR_ACCESS_ID修改为APP的AccessId,“21”开头的10位数字,中间没空格 --> <meta-data android:name="XG_V2_ACCESS_ID" android:value="2100259190" /> <!-- 【必须】 请将YOUR_ACCESS_KEY修改为APP的AccessKey,“A”开头的12位字符串,中间没空格 --> <meta-data android:name="XG_V2_ACCESS_KEY" android:value="A6ATR1QT269D" /> </application> </manifest>
5.在Activity中进行注册后即可使用,在其onCreate(Bundle savedInstanceState)重载方法内,添加以下代码,完成信鸽服务的启动与APP注册过程。
// 开启logcat输出,方便debug,发布时请关闭 // XGPushConfig.enableDebug(this, true); // 注册 ApplicationContext Context context = getApplicationContext(); XGPushManager.registerPush(context
6.还有在信鸽平台进行推送的时候,新版不能用标签分类推送,切换到老版本才有,还有有的同学问批量账号入口找不到,换个浏览器就行了。
7.将app进程杀死后,虽然IOS可以继续收到信鸽推送的消息,但Android手机并不能收到信鸽推送的消息,其他推送平台也一样包括极光推送等。
8.自定义通知栏问题,有的同学发送的消息内容字数多,而通知栏一般有系统固定高度,并无法更改,看了关于信鸽推送的NoticationBuilder方面的源码,都混淆了,很难更改。只是在官方的XGPushNotificationBuilder类中,发现当RemoteViews = null时,默认使用bigText,一旦自定义通知栏就不行了,而且自定义通知。只能修改声音、图标、字体大小和颜色等,其他的也不能更改。
9.关于透传消息,也就是应用内接收到的消息,官网文档上也有,参考 MessageReceiver这个类,就不赘述了。
最后贴上AS接入信鸽推送的视频教程
链接: http://pan.baidu.com/s/1c2xQ6Q0
密码: 2569
相关文章推荐
- 安卓-开发常见问题之android:onClick未定义
- Android Studio使用心得 - 常见问题集锦
- Android开发笔记——视频录制播放常见问题
- ubuntu下Android开发环境的搭建:eclipse+SDK详细安装教程+常见问题及其解决方案
- 【Android Studio使用教程 7】AndroidStudio问题汇总
- Android安卓视频教程(历史最全)
- 安卓航班Android开发经典教程大总结1----基础编程及源码推送
- Android Studio视频教程——Android Studio Essential Training
- Android Studio so文件如何添加,如何解决极光推送无法推送的奇怪问题
- Android Studio 常见问题之Rendering Problems
- 安卓-开发常见问题之修改android工程的jar包版本
- AndroidStudio基础视频教程-整理
- 安卓android程序源码487套+app应用开发教程+视频教学
- Android Studio开发常见问题
- Android Studio+PhoneGap 环境搭建常见问题
- Android安卓视频教程(历史最全)
- unity学习、unity培训、unity企业培训、U3D资源、U3D培训视频U3D教程、U3D常见问题、U3D项目源码
- Android进阶之视频录制播放常见问题
- Android开发环境Android Studio常见问题
- 汇总Android视频录制中常见问题