Android Management API-信息亭模式下的单个应用程序-如何隐藏状态和导航栏?

时间:2019-06-28 19:17:42

标签: fullscreen statusbar navigationbar kiosk-mode android-management-api

我想实现什么?

仅出于内部目的/仅在我们企业内部使用,我想使用Android平板电脑,该平板电脑仅运行一个应用程序(由Ionic / Angular制作),即使重新启动平板电脑后该应用程序也会出现,并且用户无法离开它

我认为我要实现的目标的技术描述称为专用设备(以前称为公司拥有的一次性使用或COSU)。

我要如何实现?

我想用Android Management API实现这一点,对于MDM(移动设备管理)解决方案来说,这似乎是一个不错的选择。

Here 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"
      ]
   }
]

我能够隐藏“主页”和“最近”按钮,但是“后退”按钮仍然存在,并且整个导航栏都可见。


以下图像显示了问题所在:

Shows the YouTube app in kiosk mode, status bar and navigation bar are visible.

有人知道如何完全摆脱状态和导航栏吗?


这是我的整个政策的样子:

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()

1 个答案:

答案 0 :(得分:0)

您突出显示的两个栏实际上是youtube应用的一部分,而不是android OS / UI的一部分。因此,您无法隐藏使用设备管理API的用户。