Как разрешить использование только предназначенных функций на планшете и предотвратить сворачивание приложения?

Как можно запретить приложению сворачиваться при нажатии на центральную кнопку и кнопку "квадратик", а также сохранить функциональность, которая уже позволяет запретить закрытие приложения при нажатии на кнопку "назад"?
  • 2 мая 2024 г. 7:10
Ответы на вопрос 2
Для решения данной проблемы для планшета можно использовать API Device Administration. 

1. Создайте свой класс, расширяющий класс DeviceAdminReceiver:

```java
public class MyDeviceAdminReceiver extends DeviceAdminReceiver {
}
```

2. Добавьте разрешение в манифесте:

```xml
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
```

3. Зарегистрируйте свой класс в манифесте:

```xml
<receiver
    android:name=".MyDeviceAdminReceiver"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <meta-data
        android:name="android.app.device_admin"
        android:resource="@xml/device_admin_receiver" />
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>
</receiver>
```

4. Создайте файл ресурсов res/xml/device_admin_receiver.xml:

```xml
<device-admin>
    <uses-policies>
        <force-lock />
        <disable-keyguard-features />
        <reset-password />
        <expire-password />
        <encrypted-storage />
        <wipe-data />
        <disable-camera />
        <disable-factory-reset />
        <disable-add-user />
        <disable-uninstall-apps />
        <disable-remove-user />
    </uses-policies>
</device-admin>
```

5. Теперь в вашем приложении при активации устройства как устройства администратора устройства можно запретить сворачивание приложения:

```java
ComponentName componentName = new ComponentName(context, MyDeviceAdminReceiver.class);
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
if (devicePolicyManager.isAdminActive(componentName)) {
    devicePolicyManager.setKeyguardDisabledFeatures(componentName, DevicePolicyManager.KEYGUARD_DISABLE_NONE);
}
```

После выполнения этих шагов, приложение будет показываться всегда на переднем плане и не будет сворачиваться при нажатии на центральную кнопку и кнопку "квадратик".
гуглить android kiosk mode ?? 
прописать свое приложение как лаунчер ?? нажатие на центральную кнопку делает вызов лаунчера.
Похожие вопросы