我想达到什么目标?
仅出于内部目的/仅在我们的企业内部,我想要 Android 平板电脑,它只运行一个应用程序(使用 Ionic/Angular 制作),它甚至在重新启动平板电脑后出现并且用户无法离开它。
我认为我想要实现的技术描述称为专用设备(以前称为企业拥有的一次性设备,或 COSU)。
我想如何实现它?
我想通过Android Management API来实现这一点,这看起来是 MDM(移动设备管理)解决方案的绝佳选择。
Google在这里展示了如何使用 Android Management API 策略来实现这一点。
问题?
我无法摆脱状态和导航栏。
出于测试目的,我尝试使用常规的 YouTube 应用来实现这一目标。我"statusBarDisabled": true,
能够禁用状态栏,因此用户无法与之交互,但它仍然可见。
导航栏也是如此
"persistentPreferredActivities":[
{
"receiverActivity":"com.google.android.youtube",
"actions":[
"android.intent.action.MAIN"
],
"categories":[
"android.intent.category.HOME",
"android.intent.category.DEFAULT"
]
}
]
我能够隐藏主页和最近的按钮,但后退按钮仍然存在,整个导航栏都是可见的。
下图可视化了问题:
任何人都知道如何完全摆脱状态和导航栏?
这就是我的整个政策的样子:
import json
policy_name = enterprise_name + '/policies/policy1'
policy_json = '''
{
"safeBootDisabled": true,
"statusBarDisabled": true,
"keyguardDisabled": true,
"screenCaptureDisabled": true,
"factoryResetDisabled": true,
"cameraDisabled": true,
"blockApplicationsEnabled": true,
"systemUpdate": {
"type": "WINDOWED",
"startMinutes": 120,
"endMinutes": 240
},
"policyEnforcementRules": [{
"settingName": "persistentPreferredActivities",
"blockAction": {
"blockAfterDays": 0
},
"wipeAction": {
"wipeAfterDays": 3,
"preserveFrp": true
}
}],
"applications": [
{
"packageName": "com.google.android.youtube",
"installType": "FORCE_INSTALLED",
"lockTaskAllowed": true,
"defaultPermissionPolicy": "GRANT"
}
],
"persistentPreferredActivities": [
{
"receiverActivity": "com.google.android.youtube",
"actions": [
"android.intent.action.MAIN"
],
"categories": [
"android.intent.category.HOME",
"android.intent.category.DEFAULT"
]
}
]
}
'''
androidmanagement.enterprises().policies().patch(
name=policy_name,
body=json.loads(policy_json)
).execute()