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

Posted

技术标签:

【中文标题】Android Management API - Kiosk 模式下的单个应用程序 - 如何隐藏状态和导航栏?【英文标题】:Android Management API - Single App in Kiosk Mode - How to hide status and navigation bar? 【发布时间】:2019-11-10 17:23:07 【问题描述】:

我想达到什么目标?

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

我认为我想要实现的技术描述称为专用设备(以前称为企业拥有的一次性设备,或 COSU)。

我想如何实现它?

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

HereGoogle 展示了如何使用 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()

【问题讨论】:

我猜使用 Android Management API 的人并不多。 . . 您找到解决方案了吗?我在使用新的 installType KiosK 配置时遇到了同样的问题。 这里也一样。对我来说奇怪的是,它实际上上周对我有用,但是当我今天尝试使用相同的策略和应用程序重新配置设备时,它突然停止工作。使用kioskCustomLauncherEnabled,我可以隐藏那些导航按钮(但如果可能的话,我更喜欢KIOSK installType 【参考方案1】:

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

【讨论】:

嘿@flint,感谢您的回答。但它们绝对不是 YouTube 的一部分。 YouTube 应用程序本身,例如底部没有条,只有一个后退按钮,顶部也没有空的灰色条。但我们只是在应用程序中处理它,而不是使用 API。

以上是关于Android Management API - Kiosk 模式下的单个应用程序 - 如何隐藏状态和导航栏?的主要内容,如果未能解决你的问题,请参考以下文章

适用于设备的 Android Management API 更改策略

在 Android Management API Policy 中启用设备的相机应用

Android Management Api 失去对已注册设备的控制权

如何通过 Android Management API 在 KIOSK 模式下允许 systemui 活动?

Android Management API 的委托范围似乎没有被 Companion 应用程序获取

后台服务未在 Android Management API 中的完全托管设备上运行