目前有个 flutter app 运行在 android 设备上,但是需要不能手势退出 app (只能主动点按钮退出)
搜索到 flutter 插件( https://pub.dev/packages/kiosk_mode) 但是只是进入了 pin screen 模式
看 README 里有一句话:
If DevicePolicyManager#isLockTaskPermitted(String) returns true for this component, the current task will be launched directly into LockTask mode.
由于我不会 android 开发,特来请教大佬怎么实现
1
learnshare 307 天前
为啥要干扰系统级的操作
不想退出,就弹出窗口再确认一下 |
2
magic3584 OP @learnshare #1
就是类似一个控制的 app ,不能主动退出 |
4
XXWHCA 307 天前
@learnshare 这些是面向企业场景的 api ,例如演示大屏,或者电梯广告这种场景,不允许用户退出 app
|
5
magic3584 OP @XXWHCA #3
大佬,经过我一阵捣鼓,功能是实现了,但是有个问题,我 app 无法卸载了。。。 起因是我用 chatGPT 帮我写了个类 https://github.com/magic3584/API/blob/master/DeviceOwnerUtil.kt (里面 clear 是我写的但是没生效。。。) 然后如下调用 ``` kotlin class MainActivity: FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { super.onCreate(savedInstanceState, persistentState) DeviceOwnerUtil.setDeviceOwner(this); // DeviceOwnerUtil.clearDeviceOwner(this) } } ``` 然后发现先是无法停止 adb shell dpm remove-active-admin com.xxx/.AdminReceiver Exception occurred while executing 'remove-active-admin': java.lang.SecurityException: Attempt to remove non-test admin ComponentInfo{com.xxx/com.xxx.AdminReceiver} 0 后来发现又无法卸载 ➜ Desktop adb shell pm uninstall com.xxx Failure [DELETE_FAILED_INTERNAL_ERROR] pad 上 app 的“卸载”和“强行停止”都是灰的。。。 真是喜闻乐见。。。 |