个推Android SDK为Android应用提供了安全稳定的推送服务模块,开发者只需在原有App中进行简单的配置和编码工作,即可快速获得实时稳定的消息推送能力。
一个典型的程序化推送的技术方案如下图所示:
(1)网络连接(必选)
<uses-permission android:name="android.permission.INTERNET"/>
(2)查看网络状态,sdk重连机制等需要使用(必选)
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
(3)查看wifi连接状态(必选)
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
(4)震动权限(使用通知功能必选)
<uses-permission android:name="android.permission.VIBRATE"/>
(5)获取任务信息,目的是防止sdk被频繁唤醒(必选)
<uses-permission android:name="android.permission.GET_TASKS"/>
(6)自定义权限,内部广播通信及为了防止小部分手机服务没法正常工作(必选)
<uses-permission android:name="getui.permission.GetuiService.${applicationId}"/>
<permission
android:name="getui.permission.GetuiService.${applicationId}"
android:protectionLevel="signature"/>
(7)兼容android12 alarm权限(必选)
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
(8)vivo角标设置(必选)
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" />
(1)支持电子围栏功能(可选)
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<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"/>
(2)获取手机状态参数(可选)
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>