kiosk. (2017, December 8). In Wikipedia, The Free Encyclopedia. Retrieved 07:39, February 7, 2018, from https://en.wikipedia.org/w/index.php?title=Interactive_kiosk&oldid=814355848 “An interactive kiosk is a computer terminal featuring specialized hardware and software that provides access to information and applications for communication, commerce, entertainment, or education.”
“A device owner is a specialized type of device administrator that has the additional ability to create and remove secondary users and to configure global settings on the device. “ Android 5.0 APIs by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/about/versions/android- 5.0.html
modeの違い 18 Set up Single-Purpose Devices by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/work/cosu.html
Owner指定には、基本的に端末初期化が必要 20 “You must provision the device owner mode of operation during the initial setup of a new device or after a factory reset. Device owner mode can’t be provisioned on a device at any other time.” EMM developer's guide by Google is licensed under the Creative Commons Attribution 3.0 License. Retrieved Feburary 07, 2018, from https://developers.google.com/android/work/prov- devices#device_must_be_new_or_factory_reset
DevicePolicyManager by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#addPersistentPrefe rredActivity(android.content.ComponentName%2C%20android.content.IntentFilter%2C%20android.content. ComponentName) DevicePolicyManager#addPersistentPreferredActivity “Called by a profile owner or device owner to add a default intent handler activity for intents that match a certain intent filter. This activity will remain the default intent handler even if the set of potential event handlers for the intent filter changes and if the intent preferences are reset.”
特定のパスワード入力後にLock task mode解除が実現可能 29 Activity by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/reference/android/app/Activity.html#stopLockTask() Activity#stopLockTask “Allow the user to switch away from the current task. Called to end the mode started by startLockTask(). This can only be called by activities that have successfully called startLockTask previously. This will allow the user to exit this app and move onto other activities.”
DevicePolicyManager by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#clearPackagePersis tentPreferredActivities(android.content.ComponentName%2C%20java.lang.String) DevicePolicyManager#clearPackagePersistentPreferredActivities “Called by a profile owner or device owner to remove all persistent intent handler preferences associated with the given package that were set by addPersistentPreferredActivity(ComponentName, IntentFilter, ComponentName).”
val context: Context) { private val deviceAdmin = ComponentName(context, AdminReceiver::class.java) private val dpm = context.getSystemService( Context.DEVICE_POLICY_SERVICE ) as DevicePolicyManager fun setLockTaskPackage() {...} fun setHomeActivity(activity: Activity) {...} fun resetHomeActivity() {...} fun hasDeviceOwnerPermission(): Boolean {...} fun start(activity: Activity) {...} fun stop(activity: Activity) {...} }
val context: Context) { private val deviceAdmin = ComponentName(context, AdminReceiver::class.java) private val dpm = context.getSystemService( Context.DEVICE_POLICY_SERVICE ) as DevicePolicyManager fun setLockTaskPackage() {...} fun setHomeActivity(activity: Activity) {...} fun resetHomeActivity() {...} fun hasDeviceOwnerPermission(): Boolean {...} fun start(activity: Activity) {...} fun stop(activity: Activity) {...} }
val context: Context) { private val deviceAdmin = ComponentName(context, AdminReceiver::class.java) private val dpm = context.getSystemService( Context.DEVICE_POLICY_SERVICE ) as DevicePolicyManager fun setLockTaskPackage() {...} fun setHomeActivity(activity: Activity) {...} fun resetHomeActivity() {...} fun hasDeviceOwnerPermission(): Boolean {...} fun start(activity: Activity) {...} fun stop(activity: Activity) {...} }
val context: Context) { private val deviceAdmin = ComponentName(context, AdminReceiver::class.java) private val dpm = context.getSystemService( Context.DEVICE_POLICY_SERVICE ) as DevicePolicyManager fun setLockTaskPackage() {...} fun setHomeActivity(activity: Activity) {...} fun resetHomeActivity() {...} fun hasDeviceOwnerPermission(): Boolean {...} fun start(activity: Activity) {...} fun stop(activity: Activity) {...} }
adb shell dpm set-device-owner jp.gr.java_conf.miwax.kioskexample/.AdminReceiver Success: Device owner set to package jp.gr.java_conf.miwax.kioskexample Active admin set to component {jp.gr.java_conf.miwax.kioskexample/jp.gr.java_conf.miwa x.kioskexample.AdminReceiver} インストールしたアプリをDeviceOwnerとして指定
Android 6.0 APIs by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/about/versions/marshmallow/android-6.0.html PackageInstaller※Android6.0からサイレントインストール可能 “Silent install and uninstall of apps by Device Owner: A Device Owner can now silently install and uninstall applications using the PackageInstaller APIs, independent of Google Play for Work. You can now provision devices through a Device Owner that fetches and installs apps without user interaction. This feature is useful for enabling one-touch provisioning of kiosks or other such devices without activating a Google account.”
DevicePolicyManager by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#wipeData(int) DevicePolicyManager#wipeData “Ask that all user data be wiped. If called as a secondary user, the user will be removed and other users will remain unaffected. Calling from the primary user will cause the device to reboot, erasing all device data - including all the secondary users and their data - while booting up.”
DevicePolicyManager by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setGlobalSetting(andr oid.content.ComponentName%2C%20java.lang.String%2C%20java.lang.String) DevicePolicyManager#setGlobalSetting “Called by device owners to update Settings.Global settings. Validation that the value of the setting is in the correct form for the setting type should be performed by the caller.”
DevicePolicyManager by the Android Open Source Project is licensed under the Creative Commons Attribution 2.5 License. Retrieved Feburary 07, 2018, from https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#setScreenCaptureDisa bled(android.content.ComponentName%2C%20boolean) “Called by a device/profile owner to set whether the screen capture is disabled.” DevicePolicyManager#setScreenCaptureDisabled