标签: device-admin

锁定屏幕而不禁用指纹

我有以下问题.我正在尝试制作一个锁定屏幕的应用程序.通过DevicePolicyManager的方法非常有效.到现在为止还挺好.但是当我使用DPM锁定手机时,指纹解锁方法正在禁用,我必须输入我的模式(或PIN或我设置的任何内容)来解锁手机.如果我以正常方式(即使用电源按钮)锁定指纹解锁工作.

所以我的问题是如何以编程方式锁定屏幕,然后能够通过指纹解锁它?

PS:我有一个带有棉花糖谱系的星系s5 mini

android fingerprint lockscreen device-admin

8
推荐指数
2
解决办法
1万
查看次数

Android的设备政策管理错误

我最近开始探索Android设备策略管理API,并且遇到了一些问题.我只是启用设备管理时遇到问题.我很确定这是清单条目的问题,但是我无法确定问题区域.

清单条目:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example"
      android:versionCode="1"
      android:versionName="1.0">

    <application android:label="DeviceAdminTrial" android:icon="@drawable/icon" android:debuggable="true">
        <activity android:name=".MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".Receiver"
                  android:label="device_admin"
                  android:permission="android.permission.BIND_DEVICE_ADMIN"/>
                  <meta-data android:name="android.app.device_admin"
                             android:resource="@xml/device_admin"  />
                  <intent-filter>
                        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
                  </intent-filter>
    </application>
</manifest> 
Run Code Online (Sandbox Code Playgroud)

错误信息:

12-25 15:42:38.930: WARN/DeviceAdminAdd(394): Unable to retrieve device policy ComponentInfo{com.example/com.example.Receiver}
        org.xmlpull.v1.XmlPullParserException: No android.app.device_admin meta-data
Run Code Online (Sandbox Code Playgroud)

device_admin.xml

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
        <force-lock />
        <wipe-data />
    </uses-policies>
</device-admin>
Run Code Online (Sandbox Code Playgroud)

启用方法:

 enable = (Button)findViewById(R.id.button);
        enable.setOnClickListener(new View.OnClickListener()
        {
         public void onClick(View v)
         {
          Intent …
Run Code Online (Sandbox Code Playgroud)

policy android device-admin

7
推荐指数
1
解决办法
5827
查看次数

“启用设备管理”对话框未显示

我正在尝试在用户单击按钮时启用设备管理。但是,设备管理员永远不会显示。调试后,应用程序似乎在不执行任何操作的情况下传递了 Activity。

我在 API 16 和 API 21 设备上进行了测试,均高于 API 级别 8 要求。

以下是我的清单的相关部分:

<!-- Add Device Activity -->
        <activity
            android:name=".AddDeviceActivity"
            android:label="@string/title_activity_add_device" />

<!-- Device Admin Receiver -->
        <receiver
            android:name=".AmayalockAdminReceiver"
            android:description="@string/txt_device_admin_description"
            android:label="@string/title_device_admin"
            android:permission="android.permission.BIND_DEVICE_ADMIN">
            <meta-data
                android:name="android.app.device.admin"
                android:resource="@xml/device_admin" />
            <intent-filter>
                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            </intent-filter>
        </receiver>
Run Code Online (Sandbox Code Playgroud)

我的 device_admin xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <force-lock />
    </uses-policies>
</device-admin>
Run Code Online (Sandbox Code Playgroud)

我的活动:

public class AddDeviceActivity extends Activity {

private static final int REQUEST_CODE_ENABLE_ADMIN = 1;

    // Interaction with the DevicePolicyManager
    DevicePolicyManager mDPM;
    ComponentName mDeviceAdmin; …
Run Code Online (Sandbox Code Playgroud)

android device-admin

7
推荐指数
1
解决办法
3325
查看次数

设备管理接收器在某些版本中无法工作

我正在开发一款安全应用程序,可以保护设备免受陌生人的侵害。

在我的应用程序中,如果用户尝试使用错误的 PIN/图案/密码解锁设备,我有一个功能应该从前置摄像头捕获图像。

我有一个类似这样的代码。

public class MyAdminReceiver extends DeviceAdminReceiver {

    @Override
    public void onPasswordFailed(Context context, Intent intent, UserHandle user) {


        Log.d("MyTag", "onPasswordFailed called");
        //Code for starting a service for image capture goes here
        .
        .
        .
    }
    ....
    ....
}
Run Code Online (Sandbox Code Playgroud)

在几乎所有版本中,我都能正确捕获图像,并且应用程序运行良好。

问题是:在某些设备中该功能onPasswordFailed不起作用。设备管理已正确激活。我尝试再次禁用它并重新激活它。我尝试重新启动设备。但没有任何效果。我可以在堆栈跟踪中看到此日志。

03-09 12:04:48.078 18491-18491/com.my.pkgname D/ActivityThread: BDC-Calling onReceive: intent=Intent { act=android.app.action.ACTION_PASSWORD_FAILED flg=0x10 cmp=com.my.pkgname/.receivers.MyAdminReceiver }, receiver=com.my.pkgname.receivers.MyAdminReceiver@30c2044b
03-09 12:04:48.079 18491-18491/com.my.pkgname D/ActivityThread: BDC-RECEIVER handled : 0 / ReceiverData{intent=Intent { act=android.app.action.ACTION_PASSWORD_FAILED flg=0x10 cmp=com.my.pkgname/.receivers.MyAdminReceiver } packageName=com.my.pkgname resultCode=-1 resultData=null resultExtras=null}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能看到的所有 Android 6.0(棉花糖版本)和 Android …

android device-admin

7
推荐指数
1
解决办法
2136
查看次数

setKeyguardDisabledFeatures(componentName, DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE); 不适用于 android-q/Android 10

Android Q / Android 10使用USES_POLICY_DISABLE_KEYGUARD_FEATURESkeyguard_features导致安全异常。

devicePolicyManager.setKeyguardDisabledFeatures(componentName, DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE);
Run Code Online (Sandbox Code Playgroud)

java.lang.SecurityException: Admin ComponentInfo{ ... } 不是设备所有者或配置文件所有者,因此可能不使用策略:disable-keyguard-features

经过进一步检查,我发现 android pie 已标记为KEYGUARD_FEATURESdeprecated 并在android-q / Android 10. 有没有其他替代方法可以禁用keyguard_features

android device-admin android-10.0

7
推荐指数
1
解决办法
603
查看次数

从Android 2.2中的设备远程擦除数据

如何从设备远程擦除数据?

我已经尝试过设备管理中给出的示例代码.我们可以在本地擦除所有设备数据并将设备重置为出厂设置.

给出以下链接

http://developer.android.com/guide/topics/admin/device-admin.html

现在我想要远程擦除数据的代码.即如果手机丢失,用户可以远程擦除手机数据.请有人帮忙吗

android device-admin

6
推荐指数
1
解决办法
6243
查看次数

使用DeviceAdminReceiver锁定设备

我尝试使用DeviceAdminReceiver锁定设备并尝试启用以下管理:

if (!mDPM.isAdminActive(mDeviceAdminSample)) {
  Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
  intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
  intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Additional text explaining why this needs to be added.");   startActivity(intent);
 }
Run Code Online (Sandbox Code Playgroud)

并得到如下错误:

错误/错误(1022):java.lang.SecurityException:uid 10045没有为策略#3拥有的活动管理员

请给我一些代码解决方案以及如何启用管理权限.

android device-admin

6
推荐指数
2
解决办法
1万
查看次数

Android应用程序启动时如何激活DeviceAdmin?

您好,我想在应用程序启动时启动/激活设备管理而不使用 Intent。现在我正在使用这段代码:

Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
            intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, Global.mDeviceAdminSample);
            intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                    "Additional text explaining why this needs to be added.");
            startActivityForResult(intent, RESULT_ENABLE);
Run Code Online (Sandbox Code Playgroud)

但我不想使用 Intent。我想直接启动设备管理。

谁能知道我该怎么做?

谢谢。

android device-admin

6
推荐指数
1
解决办法
1万
查看次数

在Android 6.0中使用lockNow后如何保留指纹解锁?

使用DevicePolicyManager在Android 6.0中执行lockNow()后,我们如何保留无缝指纹解锁效果?

假设在具有指纹扫描仪的设备上,应用程序调用lockNow()具有"USES_POLICY_FORCE_LOCK"并且已被授予设备管理员状态.

这是lockNow()函数的文档:

public void lockNow()

立即锁定设备,就像锁定屏幕超时在此呼叫时已过期一样.

呼叫设备管理员必须已请求USES_POLICY_FORCE_LOCK才能调用此方法; 如果没有,则抛出安全异常.

获得设备管理员状态并执行锁定就好了.为了便于参考,请参阅我使用的方法的SO问题.

问题是在手机锁定后,指纹扫描仪不再能够顺利解锁手机.相反,指纹扫描仪会提示我输入后备PIN码. 为了在执行lockNow()调用后保留指纹解锁效果,Android 6.0中是否有新功能?

我查看了所有的DevicePolicyManager标志(在文档中),它似乎提供了禁用事物而不是启用事物.

谢谢!

android fingerprint device-admin android-6.0-marshmallow

6
推荐指数
1
解决办法
4121
查看次数

启用后将我的Android应用设置为完全信息亭模式

我正在尝试使自己的反馈应用程序完全支持自助服务终端,我尝试了很多解决方案,但没有什么可以完全满足我的需求。这是我发现的东西。

1.将我的应用设置为设备管理员/所有者应用(锁定任务)-

如果我们遵循此链接/过程https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode,则存在一些限制,如下所示:

一种。我们必须将安装了“反馈”应用程序的所有设备恢复出厂设置,并按照一些步骤将其设置为“管理”应用程序(启动器应用程序)。

b。可以使用命令行安装该应用程序,每次安装都需要通过cmd进行一些代码行,这意味着安装人员必须随计算机一起去,并使用USB连接设备,然后使用命令安装该应用程序。

C。应用程序更新也将遵循相同的步骤(无法使用Google Play商店执行)

d。在这种情况下,最终用户将永远无法退出我们的应用程序,重新启动设备还会每次都启动相同的反馈应用程序。

2.以编程方式进行屏幕固定+以编程方式进行音量和电源按钮控制。https://github.com/mrugacz95/kiosk

一种。在这种情况下,我们将使应用程序处于屏幕固定模式,其中所有三个底部按钮(“概览”,“主页”,“最近”)将被隐藏/禁用。和电源键和音量键相同。

b。因此,只要用户单击信息亭模式,就会向用户显示屏幕固定系统生成的提示,但是最大的缺点是,一旦用户同时按下概述和最近的按钮,应用程序将被取消固定/解锁。

3.第三种情况是,所有键均受控制,包括电源+声音+后退+概述等。 仅按Home键可使该应用程序在后台运行,而在几秒钟内它将再次成为前台。

因此,到目前为止我所发现的一切还不是很令人满意。还有一个问题-

Is this something to be fully controlled by MDM(Mobile Device Management)?

任何帮助表示赞赏。

android kiosk mdm kiosk-mode device-admin

6
推荐指数
1
解决办法
930
查看次数