Android Management API - одно приложение в режиме киоска - как скрыть статус и панель навигации? - PullRequest
0 голосов
/ 28 июня 2019

Чего бы я хотел достичь?

Только для внутренних целей / только в рамках нашего предприятия, я хотел бы иметь планшеты Android, на которых работает только одно приложение (выполненное с Ionic / Angular), которое появляется даже после перезагрузки планшета, и пользователь не может покинуть его .

Я думаю, что техническое описание того, что я хотел бы получить, называется выделенными устройствами (ранее называвшимися корпоративными одноразовыми или COSU).

Как бы я хотел этого достичь?

Я бы хотел добиться этого с помощью API управления Android , который выглядит как отличный выбор для решения MDM (управления мобильными устройствами).

Здесь Google показывает, как этого добиться с помощью политики API управления Android.

Проблема?

Я не могу избавиться от статуса и панели навигации.

В целях тестирования я пытался добиться этого с помощью обычного приложения 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 голосов
/ 10 июля 2019

Две полосы, которые вы выделили, на самом деле являются частью приложения YouTube, а не частью операционной системы / интерфейса Android.Таким образом, вы не можете скрыть тех, кто использует API управления устройством.

...