我正在Android 5.1上的Android Studio中开发一个android应用程序(这是用于特定平板电脑的应用程序)。我需要我的应用成为设备所有者,并且必须在信息亭模式下运行。 我已经通过以下方式设置了设备所有者: 数据库外壳 dpm set-device-owner com.foo.deviceowner / .DeviceAdminRcvr 现在,我想知道是否可以通过编程将我的应用设置为设备所有者,而无需NFC,手机支持或使用Android Studio Shell。我已经在代码中使用了: Runtime.getRuntime()。exec(“ adb shell dpm set-device-owner com.foo.deviceowner / .DeviceAdminRcvr”); 但这没用。 (How to make my app device owner without NFC and ADB shell command)
我的第二个问题是: 将应用程序固定到屏幕后,导航栏仍会显示(仅带有返回按钮,显示Toast)。可以禁用此栏的显示吗?
我的最后一个问题: 我希望我的应用在设备启动时启动。我加了:
<category android:name="android.intent.category.HOME"/>
进入我的活动并实现了BroadcastReceiver。我的应用程序首次启动时,Android会要求选择家庭应用程序。有没有一种方法可以将应用设置为家庭应用,而无需用户询问?
最诚挚的问候
答案 0 :(得分:0)
例如,您必须在应用程序中使用DeviceAdminReceiver类
class AdminReceiver : DeviceAdminReceiver() {
companion object {
private const val TAG = "AdminReceiver"
fun getComponentName(context: Context): ComponentName =
ComponentName(context.applicationContext, AdminReceiver::class.java)
}
override fun onEnabled(context: Context?, intent: Intent?) {
Log.i(TAG, "Enabled")
showLongToast(context!!, R.string.app_enable)
MainActivity.launch(context)
super.onEnabled(context, intent)
}
override fun onDisabled(context: Context?, intent: Intent?) {
Log.i(TAG, "Disabled")
showLongToast(context!!, R.string.app_enable)
super.onDisabled(context, intent)
}
}
中看到完整的示例