You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android QR设备所有者配置:无法获取ADMIN_EXTRAS_BUNDLE自定义参数

解决无法从ADMIN_EXTRAS_BUNDLE获取自定义属性的问题

针对你遇到的无法获取company_name的问题,可从以下几个关键方向排查修复:

1. 确保设备管理员组件名称完整正确

QR配置中的android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME必须是完整的组件路径,格式为[应用包名]/[接收器类的全路径],比如:

"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME": "com.your.package.yourapp/.ProfileProvisioningCompleteReceiver"

你当前填写的myAdminReceiver是短类名,系统无法正确识别对应的组件,会导致admin extras无法传递。

2. 验证签名校验和的准确性

如果PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM与你的APK签名不匹配,系统会拒绝传递admin extras。使用以下命令生成正确的SHA-256校验和:

keytool -list -printcert -jarfile your-app-release.apk | grep SHA256 | cut -d ' ' -f 2 | xxd -r -p | base64 | tr -d '=' | tr '/+' '_-'

将生成的字符串替换到QR配置的对应字段中。

3. 确认广播接收器的Manifest注册正确

在AndroidManifest.xml中注册接收器时,必须声明正确的Intent Filter,并确保接收器可被系统调用:

<receiver
    android:name=".ProfileProvisioningCompleteReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="android.app.action.PROFILE_PROVISIONING_COMPLETE" />
    </intent-filter>
</receiver>

如果是设备所有者模式的接收器,还需添加android:permission="android.permission.BIND_DEVICE_ADMIN"权限。

4. 检查代码中常量的正确性

确保代码中使用的是DevicePolicyManager类的官方常量,避免拼写错误:

import android.app.admin.DevicePolicyManager
import android.os.PersistableBundle

class ProfileProvisioningCompleteReceiver: BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        intent ?: return
        if (DevicePolicyManager.ACTION_PROFILE_PROVISIONING_COMPLETE == intent.action) {
            val extras = intent.getParcelableExtra<PersistableBundle>(DevicePolicyManager.EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE)
            val companyName = extras?.getString("company_name")
            Log.d("PROFILE PROVISIONING", "Company Name: $companyName")
            Toast.makeText(context, "Company Name: $companyName", Toast.LENGTH_LONG).show()
        }
    }
}

避免直接写字符串常量,防止因拼写错误导致匹配失败。

5. 确认配置流程的模式兼容性

ADMIN_EXTRAS_BUNDLE仅在设备所有者或**工作资料(托管配置文件)**模式下有效,如果你使用的是其他配置模式(如个人设备的普通管理员),系统不会传递该参数。确保你的QR码配置是针对这两种模式的。


内容的提问来源于stack exchange,提问作者PoYo Rivera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 20:15:50