kiosk_lock_task
Android Lock Task Mode를 Flutter에서 켜고 끄는 플러그인입니다.
일반 앱 상태에서는 Android의 화면 고정 흐름으로 동작할 수 있고, 앱이 Device Owner로 등록되어 있으면 완전한 키오스크 Lock Task Mode로 동작합니다.
Install
pub.flutter-io.cn에 퍼블리싱된 패키지를 사용하세요.
dependencies:
kiosk_lock_task: ^0.0.1
Android setup
앱의 launcher activity에 Lock Task 속성을 추가하세요.
<activity
android:name=".MainActivity"
android:lockTaskMode="if_whitelisted"
...>
</activity>
Device Owner 등록 명령은 앱의 application id와 플러그인의 admin receiver를 같이 사용합니다.
adb shell dpm set-device-owner your.app.id/com.nailbiter.kiosk_lock_task.KioskDeviceAdminReceiver
이미 Google/Samsung 계정이 들어간 기기에서는 Android가 Device Owner 등록을 거부할 수 있습니다. 완전 키오스크 용도라면 초기화 직후 계정 추가 전에 등록하세요.
Usage
import 'package:kiosk_lock_task/kiosk_lock_task.dart';
const kiosk = KioskLockTask();
await kiosk.setLaunchOnBootEnabled(true);
final isDeviceOwner = await kiosk.isDeviceOwner();
final enabled = await kiosk.enable();
await kiosk.disable();
enable()은 자동 재진입 설정을 켜고 현재 Activity에서 startLockTask()를
호출합니다. disable()은 자동 재진입 설정을 끄고 stopLockTask()를 호출합니다.
부팅 후 앱 자동 실행은 기본적으로 꺼져 있습니다.
await kiosk.setLaunchOnBootEnabled(true);
이 값을 켜면 BOOT_COMPLETED, LOCKED_BOOT_COMPLETED,
MY_PACKAGE_REPLACED 이벤트에서 앱의 기본 launcher activity를 실행합니다.