为了账号安全,请及时绑定邮箱和手机立即绑定

为什么重新启动具有限制 UserManager.DISALLOW_USB_FILE_TRANSFER

为什么重新启动具有限制 UserManager.DISALLOW_USB_FILE_TRANSFER

胡子哥哥 2023-06-28 16:16:34
我按照 android 开发人员中的本指南创建了一个信息亭应用程序 -锁定任务模式。每当设备完成启动时,该应用程序就可以自动启动,但问题是每当我重新启动/关闭并启动具有此限制的设备时,设备将无法启动,它会卡在设备的品牌徽标屏幕中,并且具有恢复出厂设置即可再次工作。dpm.addUserRestriction(componentName, UserManager.DISALLOW_USB_FILE_TRANSFER);如果我不重新启动设备,则此限制工作正常,但在某些时候需要关闭设备。如何在启动过程中正确设置此限制而不破坏设备?
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

我找到了解决该问题的解决方法。我创建了一个用于设备关闭的广播接收器,并在设备重新启动时删除限制并重新启用限制。



public class ShutDownReceiver extends BroadcastReceiver {


    private static final String TAG = "ShutDownReceiver";

    @Override

    public void onReceive(Context context, Intent intent) {


        String action = intent.getAction();


        if (Intent.ACTION_SHUTDOWN.equals(action)){


            DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);

            ComponentName cn = AdminReceiver.getComponentName(context);


            if (dpm != null && dpm.isDeviceOwnerApp(context.getPackageName())) {

                //This is a custom method

                setUserRestriction(dpm, cn, UserManager.DISALLOW_USB_FILE_TRANSFER, false);

            }

            Toast.makeText(context, "Shutting Down", Toast.LENGTH_SHORT).show();

            Log.d(TAG, "onReceive: ACTION_SHUTDOWN");

        }

    }

}


在清单中添加代码


        <receiver android:name=".receiver.ShutDownReceiver">

            <intent-filter>

                <action android:name="android.intent.action.ACTION_SHUTDOWN" />

                <action android:name="android.intent.action.QUICKBOOT_POWEROFF" />

            </intent-filter>

        </receiver>


查看完整回答
反对 回复 2023-06-28
  • 1 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信