在实现设备所有权之后,我试图实现一种方法来指示设备将任何给定的应用程序锁定到信息亭模式(或屏幕固定模式).由于我拥有设备所有权,因此不会要求用户获得许可.
在开发者网站上,简要说明告诉我可以做我正在尝试的事情:
http://developer.android.com/about/versions/android-5.0.html#ScreenPinning
以编程方式:要以编程方式激活屏幕固定,请从您的应用程序调用startLockTask().如果请求的应用程序不是设备所有者,则会提示用户进行确认.设备所有者应用程序可以调用setLockTaskPackages()方法,以便在没有用户确认步骤的情况下使应用程序可以固定.
这表明作为设备所有者应用程序,我可以在没有用户确认的情况下锁定其他应用程序...但我不知道如何操作.
我已经能够将自己的应用程序置于固定模式.
任何帮助,将不胜感激.
android device-policy-manager android-5.0-lollipop android-screen-pinning device-owner
我需要知道如何在Android 5.0,4.4和4.3(?)中将我的应用程序设置为设备所有者.我已经成功地尝试了root设备的方法(在那里描述).我看到它在android 5.0和4.4.2模拟器以及CyanoGen AOSP 4.4.4(所有有根设备)中都很有效.但是我必须在其他非root设备上尝试这个,在Android 5.0 Developer API中你可以读到这个
"要部署和激活设备所有者,您必须在设备处于未设置状态时执行从编程应用程序到设备的NFC数据传输."
但我不明白这意味着什么,或者更好,我要做什么.有人可以帮助我,还是解释我要做的一步?
PS.我知道NFC是什么以及它是如何工作的但是我无法理解如何使用这个问题.
Lollipop API提供了2个新功能"Profile Owner"和"Device Owner"(http://developer.android.com/about/versions/android-5.0.html#Enterprise).在它们之间,它们提供了我需要的应用程序所需的功能,父母可以使用它来控制孩子的设备活动.每个的设置流程是:
在设备设置期间,使用NFC,您可以告诉Android您希望您的应用成为设备所有者.Android然后从URL下载应用程序,并且设备已加密并作为设备所有者配置应用程序.因此,对于从Google Play安装我的应用程序的人,我需要该应用程序提示他们重置他们的设备,然后在另一台设备上安装另一个应用程序,然后NFC将它们组合在一起.随着设置流程的进行,这远非理想.但是一旦设置,设备所有者API就为此用例提供了非常丰富的功能集.
此设置更直接:用户从Google Play安装应用程序,然后可以提示您为应用程序配置文件所有者权限.如果用户同意,则设备由Android加密,并且在重新启动后,设备具有使用相同启动器(主屏幕)的2个"共存"配置文件.设置可能更直接,但最终结果并不是我真正需要的,因为应用程序只能控制托管配置文件下的应用程序.
所以我想我实际上有两个问题:是否可以创建一个控制整个用户配置文件的配置文件所有者应用程序,即不是共存的托管配置文件?或者是否可以使用更简单的设置流程创建设备所有者应用程序,不需要恢复出厂设置和NFC凹凸(根不是一个选项)?两种方法之间的某些中间地带是理想的.
android nfc device-policy-manager android-5.0-lollipop device-owner
我正在制作一个 MDM 应用程序,我必须在其中阻止设备中所有应用程序的屏幕截图。我知道使用
getWindow().setFlags(LayoutParams.FLAG_SECURE,LayoutParams.FLAG_SECURE)
Run Code Online (Sandbox Code Playgroud)
我可以在我的应用程序活动中禁用屏幕截图,但我想在安装到设备中的所有应用程序中禁用屏幕截图。以前我使用文件观察器来阻止屏幕截图,它检测是否有任何图像已添加到 Screenshot 文件夹中,它正在删除该图像。但是从 Android M 开始,他们不允许文件观察器。我搜索了很多,但没有得到任何解决方案。但是许多Android应用程序,如quick Heal的seqrite MDM也阻止了Android M中的屏幕捕获,因此必须有某种方法。
我在 DevicePolicyManger 类中找到了 api setScreenCaptureDisabled,它可以禁用屏幕捕获,但只能由设备所有者应用程序调用。
如果有人知道阻止屏幕捕获的方法,请帮助我。
这个答案表明 Android 应用程序可以dpm像这样运行:
Runtime.getRuntime().exec("dpm set-device-owner com.test.my_device_owner_app");
Run Code Online (Sandbox Code Playgroud)
在我运行 5.1.1 的 Nexus 4 上,此问题会默默失败。shell 返回错误代码 0(成功)并且没有控制台输出。尽管取得了明显的成功,但我的应用程序并未成为设备所有者。该设备刚刚恢复出厂设置,未配置用户帐户。
作为对照,我尝试运行垃圾命令而不是dpm. 正如预期的那样,它失败了。
这曾经有效吗?是故意削弱的吗?
我是 Android 新手,我必须在工作中创建一个执行以下任务的应用程序:
我们的平板电脑已获得 root 权限并运行 CyanogenMod 12.1 和 Android 5.1.1 Lollipop。由于这不是从 Play 商店下载的商业版本,我可以假设我可能需要的所有权限都会被授予。
我搜索了一种干净的代码方法来做到这一点,而无需运行 shell 命令或其他黑客,但找不到任何东西......
我知道,关于这个主题已经提出了太多问题,但并非所有操作系统/设备都支持这些问题
android.permission.GET_TASKS被贬低了。我正在尝试创建一个单一用途的应用程序。因此,我创建了一个BaseActivity,我所有的活动都继承自它。
看起来像
public class LockDeviceActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
private void startLock() {
if(mDevicePolicyManager.isLockTaskPermitted(getPackageName())) {
/**
* If lock task is permitted, we can lock the task. We can use an external DPM like
* TestDPC provided by Google to manage lock task list.
*
* If the lock is obtained using TestDPC, features like status bar, home button, recent
* apps, etc is disabled.
*
* To unlock we can programatically …Run Code Online (Sandbox Code Playgroud)