gpt4 book ai didi

android - DevicePolicyManager 崩溃时检查 Activity 密码就足够了

转载 作者:太空狗 更新时间:2023-10-29 14:42:13 25 4
gpt4 key购买 nike

Caused by java.lang.SecurityException: Permission Denial: isUserRunning() from pid=13462, uid=101010 requires android.permission.INTERACT_ACROSS_USERS
at android.os.Parcel.readException(Parcel.java:1683)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.admin.IDevicePolicyManager$Stub$Proxy.isActivePasswordSufficient(IDevicePolicyManager.java:3714)
at android.app.admin.DevicePolicyManager.isActivePasswordSufficient(DevicePolicyManager.java:2003)

public boolean isPasswordSufficient() {
返回 mDpm.isActivePasswordSufficient();
}

以上是导致此问题的崩溃日志和方法。崩溃日志取自在线崩溃报告工具 Crashlytics。根据官方文档 here调用 isActivePasswordSufficient() 方法可以在 2 种情况下抛出 SecurityException

  • 如果调用应用程序不拥有使用 USES_POLICY_LIMIT_PASSWORD 的 Activity 管理员
  • 如果用户未解锁。

而且第一种情况似乎不会发生,因为我在调用该方法之前进行了 mDpm.isAdminActive() 检查,设备管理员也有

<device-admin>
<uses-policies>
<limit-password/>

在元数据中。所以我认为这可能与第二种情况有关。我的问题是,如果用户未解锁 是什么意思?以及如何重现该问题(如果可能的话。我尝试创建多个用户并在用户帐户之间切换,也尝试启用屏幕锁定),有没有办法处理这个崩溃而不是添加 try catch block (如果它好的,请告诉我为什么)?到目前为止,此崩溃仅发生在 Motorola Nexus 6 Android 7.0 上。

最佳答案

尝试将 android:protectionLevel="signature" 添加到您的 list 文件中

如下在 list 文件中:

<permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>

了解更多 permission-element

语法:

<permission android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" |
"signature" | "signatureOrSystem"] />

关于android - DevicePolicyManager 崩溃时检查 Activity 密码就足够了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46148217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com