Java实现 kiosk模式,Android中的Kiosk模式
启动时启动应用程序
实现此目的的最佳方法是将您的应用程序设置为启动器
android:launchMode="singleInstance"
android:windowActionBar="false">
锁定您的应用
最可靠的方法是使用Lollipop或更高版本的设备并使用
startLockTask
首先你必须将您的应用设置为设备所有者 . 注意,您的设备必须取消设置:如果您已注册,则应重置工厂并跳过帐户注册 .
为了能够注册您的应用程序,您必须首先设置DeviceAdminReceiver组件:
package com.example.myapp;
public class MyDeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver {
@Override
public void onEnabled(Context context, Intent intent) {
Toast.makeText(context, "Device admin permission received", Toast.LENGTH_SHORT).show();
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
return "are you sure?";
}
@Override
public void onDisabled(Context context, Intent intent) {
Toast.makeText(context, "Device admin permission revoked", Toast.LENGTH_SHORT).show();
}
@Override
public void onLockTaskModeExiting(Context context, Intent intent) {
// here you must re-lock your app. make your activity know of this event and make it call startLockTask again!
}
}
一旦你有一个未设置的设备,你可以从adb( no root required )启动以下命令
adb shell dpm set-device-owner com.example.myapp/.MyDeviceAdminReceiver
为了避免android询问用户固定你的应用程序的权限你必须调用setLockTaskPackages
最后!
@Override
public void onResume(){
super.onResume();
DevicePolicyManager mDevicePolicyManager = (DevicePolicyManager) getSystemService(
Context.DEVICE_POLICY_SERVICE);
ComponentName mAdminComponentName = new ComponentName(getApplicationContext(), MyDeviceAdminReceiver.class);
mDevicePolicyManager.setLockTaskPackages(mAdminComponentName, new String[]{getPackageName()});
startLockTask();
}
@Override
public void finish(){
stopLockTask();
super.finish();
}
Java实现 kiosk模式,Android中的Kiosk模式相关推荐
- Java I/O在Android中应用(一)
Java I/O在Android中应用(一) 前言(废话) 本来想周末拉一拉进度的,结果跑完10KM马拉松之后,发现自己已经完全没有力气再去做任何事情了. 讲一些日常的事情吧,最近家里人说要给我介绍对 ...
- Android中的代理模式
Android中的代理模式 1. 什么是代理 比如我们生活中的找出租屋,需要去找中介进行寻找挑选.而这里的中介就是代理.列子中看出代理特点如下1. 租客跟中介要做成的最终目的是一致的就是租到房子(目标 ...
- Android中Activity启动模式
Android中Activity启动模式一共是四种,这里我写一下我对其的理解: 1.standard(默认) 2.singleTop,如果某个Activity设置了该属性,且当前Activity就是这 ...
- android中的recovery模式
这里使用基于freescale的imx_r9.2 patch的android源码分析. android中的recovery模式,作为android的开发者或者用户都应该清楚和了解.android利用r ...
- Java实现二十三种设计模式(五)—— 十一种行为型模式 (中)——解释器模式、迭代器模式、中介者模式、备忘录模式
Java实现二十三种设计模式(五)-- 十一种行为型模式 (中)--解释器模式.迭代器模式.中介者模式.备忘录模式 一.解释器模式 我国 IT 界历来有一个汉语编程梦,虽然各方对于汉语编程争论不休,甚 ...
- android classloader的功能和工作模式,Android中ClassLoader和java中ClassLoader有什么关系和不同...
一.Java中的ClassLoader是什么? 当写好一个Java应用程序,程序都是由若干个.class类文件组织而成的,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都 ...
- Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...
- android中的mvp模式怎么定义,详解MVP模式在Android开发中的应用
一.MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Mode ...
- android中的mvp模式怎么定义,在android中使用MVP模式
1.MVP介绍java 随着UI建立技术的功能日益加强,UI层也履行着愈来愈多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专一于处理数 据的可视化以及与用户的交互,同时 ...
- Android中的MVP模式初步使用
为什么80%的码农都做不了架构师?>>> 之前在做javaweb的项目的时候,最开始接触的mvc结构作为做根本的结构,在Android项目中 Google本身设计的Androi ...
最新文章
- listen函数与海量用户同时登陆
- java两个数之间质数求法,求任意两个整数之间质数的个数的代码!!!(新手编写)...
- oracle 连接greenplum,Oracle通过DBLINK访问GreenPlum
- UVA11532 Simple Adjacency Maximization【位运算】
- matlab2c使用c++实现matlab函数系列教程-median函数
- 三种基本排序方法-冒泡排序,选择排序,插入排序
- 解决Windows10无法卸载Edge浏览器,亲测有效
- 笔记本电脑CPU低压、标压、高压的区别
- 0ops CTF/0CTF writeup
- C++ 字符串的截取
- Flutter 利用 FFI,绕过 Android JNI 直接调用 C++ 层!
- kali linux实体机_kali linux系统安装之物理机的详细安装步骤
- Android手账本案例
- OpenCV开发笔记(四十八):红胖子8分钟带你深入了解直方图均衡化(图文并茂+浅显易懂+程序源码)
- 如何通adb命令删除安卓设备上指定的文件和apk
- linux wget
- 《证券投资基金投资流通受限股票估值指引(试行)》解读
- 机电工程毕业论文题目【484个】
- 简体繁体转换功能php,PHP输出控制功能在简繁体转换中的应用
- 浅谈微信公众号怎么涨粉丝