XuqmGroup-AndroidSDK/sdk-push/src/main/AndroidManifest.xml
XuqmGroup 344efbb0aa feat(push): 完成 VIVO 推送集成 + Xiaomi 凭据强校验
- XuqmVivoPushReceiver 从 BroadcastReceiver 改为继承 OpenClientPushMessageReceiver,通过 onReceiveRegId 回调获取 regId(修复之前 extractRegId 的脆弱 key 匹配)
- VIVO receiver android:exported 从 false 改为 true(跨进程广播必须可导出)
- VivoPushService 失败日志级别从 Log.w 提升为 Log.e
- Xiaomi/VIVO 凭据必须来自控制台,获取不到时抛出异常(移除 meta-data 本地兜底)
- PushSDK.loadVendorConfig 失败时向上抛异常,不再 swallow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 16:57:18 +08:00

161 行
6.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<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.VIBRATE" />
<uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE" />
<uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE" />
<uses-permission android:name="com.hihonor.push.permission.READ_PUSH_NOTIFICATION_INFO" />
<uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />
<permission
android:name="${applicationId}.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" />
<permission
android:name="${applicationId}.hihonor.permission.PROCESS_PUSH_MSG"
android:protectionLevel="signatureOrSystem" />
<queries>
<package android:name="com.huawei.hwid" />
<package android:name="com.huawei.hms" />
<package android:name="com.huawei.android.pushagent" />
<package android:name="com.hihonor.id" />
<package android:name="com.hihonor.appmarket" />
<intent>
<action android:name="com.hihonor.push.action.BIND_PUSH_SERVICE" />
</intent>
</queries>
<application>
<meta-data
android:name="push_kit_auto_init_enabled"
android:value="false" />
<provider
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:authorities="${applicationId}.firebaseinitprovider"
tools:node="remove" />
<meta-data
android:name="com.vivo.push.app_id"
android:value="${XUQM_VIVO_APP_ID}" />
<meta-data
android:name="com.vivo.push.api_key"
android:value="${XUQM_VIVO_APP_KEY}" />
<meta-data
android:name="com.hihonor.push.app_id"
android:value="${XUQM_HONOR_APP_ID}" />
<meta-data
android:name="com.hihonor.push.sdk_version"
android:value="7.0.41.301" />
<service
android:name="com.xuqm.sdk.push.fcm.XuqmFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name="com.xuqm.sdk.push.huawei.XuqmHuaweiPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name="com.xuqm.sdk.push.honor.XuqmHonorPushService"
android:exported="false">
<intent-filter>
<action android:name="com.hihonor.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name="com.xiaomi.push.service.XMPushService"
android:enabled="true"
android:process=":pushservice" />
<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:name="com.xiaomi.mipush.sdk.PushMessageHandler"
android:enabled="true"
android:exported="true"
android:permission="com.xiaomi.xmsf.permission.MIPUSH_RECEIVE" />
<service
android:name="com.xiaomi.mipush.sdk.MessageHandleService"
android:enabled="true" />
<receiver
android:name="com.xiaomi.push.service.receivers.PingReceiver"
android:exported="false"
android:process=":pushservice">
<intent-filter>
<action android:name="com.xiaomi.push.PING_TIMER" />
</intent-filter>
</receiver>
<activity
android:name="com.xiaomi.mipush.sdk.NotificationClickedActivity"
android:enabled="true"
android:excludeFromRecents="true"
android:exported="true"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<meta-data
android:name="supportStyle"
android:value="scene|voip" />
</activity>
<receiver
android:name="com.xuqm.sdk.push.xiaomi.XuqmXiaomiPushReceiver"
android:exported="true">
<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>
<service
android:name="com.heytap.msp.push.service.CompatibleDataMessageCallbackService"
android:exported="true"
android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
<intent-filter>
<action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
</intent-filter>
</service>
<service
android:name="com.heytap.msp.push.service.DataMessageCallbackService"
android:exported="true"
android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE">
<intent-filter>
<action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
<action android:name="com.heytap.msp.push.RECEIVE_MCS_MESSAGE" />
</intent-filter>
</service>
<service
android:name="com.vivo.push.sdk.service.CommandClientService"
android:exported="true" />
<receiver
android:name="com.xuqm.sdk.push.vivo.XuqmVivoPushReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.vivo.pushclient.action.RECEIVE" />
</intent-filter>
</receiver>
</application>
</manifest>