代码之家  ›  专栏  ›  技术社区  ›  Sarangan

为什么在Android 5.0中,sendBroadcastAsUser(intent,userHandle)甚至不能与设备所有者一起工作?

  •  1
  • Sarangan  · 技术社区  · 9 年前

    我已将我的应用程序作为设备所有者,并创建了另一个用户。现在我想使用broadcastAsUser从主用户广播到另一个用户。

    我已为此添加了以下权限

    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
    
    UserManager userManager=(UserManager)getSystemService(Context.USER_SERVICE);
    UserHandle userHandle=userManager.getUserForSerialNumber(serialNumber);
    Intent intent=new Intent(action);
    sendBroadcastAsUser(intent,userHandle);
    

    权限拒绝:来自com.sample.deviceadmintest的广播请求以用户10的身份运行,但正在从用户0调用;这需要android.permission.INTERACT_ACROSS_USERS_FULL或android.pPermission.INTERAT_ACROSS_USERS

    我错过了什么吗? 提前感谢!

    1 回复  |  直到 9 年前
        1
  •  1
  •   Sarangan    9 年前

    我找到了原因。尽管应用程序是设备所有者,但它没有权限

     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
    

    设备所有者仍然没有系统应用程序所拥有的所有权限。设备所有者应用程序不是系统应用程序。