java - Android 阻止用户关闭应用程序

标签 java android performance android-intent mdm

有没有一种方法可以构建自定义 MDM,以强制应用程序始终打开。即不要让用户关闭。

我正在构建一个要向用户展示的图片库应用程序。但我不希望他们能够关闭我的应用程序。

谢谢

像这样的东西?

public class IntentReceiver extends BroadcastReceiver {
    public static final String TAG = IntentReceiver.class.getSimpleName();


    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "onReceive - intent => " + intent.getAction());

        //Get Intent
        String action = intent.getAction();

        if("android.intent.category.HOME".equals(action)) {

            Intent i = new Intent();
            i.setClass(context, MainActivity.class);
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }

但是,我还需要知道应用何时关闭或终止?

Let me try to explain better. imagine if an artist wants to display his work via 10 android device. all in the Wall. So he can use this app. I want to lock-down the device. to only run this app and nothing else to work. Similar conset when you go to a phone shop and all the device is running a demo app and you can't quit it with out a password. (i.e Apple Store) you can't quit the app running on these Ipads

最佳答案

我专门写了一篇关于 Android 上的 Kiosk 模式的文章——过去只是“任务固定”。

http://www.sureshjoshi.com/mobile/android-kiosk-mode-without-root/

  • 创建一个 DeviceAdminReceiver 并将其放在您的 list 中
  • 然后,运行 dpm 为您自己授予设备管理员访问权限

adb shell dpm set-device-owner com.sureshjoshi.android.kioskexample/.AdminReceiver

  • 在应用中验证您是设备所有者,然后您就可以开始比赛了

这需要大量工作,但是,一旦您完成了样板文件,您最终将使用此代码段来启用和禁用。

private void enableKioskMode(boolean enabled) {
    try {
        if (enabled) {
            if (mDpm.isLockTaskPermitted(this.getPackageName())) {
                startLockTask();
                mIsKioskEnabled = true;
                mButton.setText(getString(R.string.exit_kiosk_mode));
            } else {
                Toast.makeText(this, getString(R.string.kiosk_not_permitted), Toast.LENGTH_SHORT).show();
            }
        } else {
            stopLockTask();
            mIsKioskEnabled = false;
            mButton.setText(getString(R.string.enter_kiosk_mode));
        }
    } catch (Exception e) {
        // TODO: Log and handle appropriately
    }
}

关于java - Android 阻止用户关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31913909/

相关文章:

系统应用程序的 Android java.lang.SecurityException

java - 如何使用 Model 类在 Spinner 中获取选定值?

performance - Matlab:从循环中重复调用相同的 mex 函数是否会产生太多开销?

javascript - ngRepeat 中的性能问题

java - LibGDX - Android 上的鼠标按钮

java - 如何避免读取空值时强制关闭

Mac上的Android模拟器滞后

php - 哪个 MySQL 查询的检索速度更快?

java - 加密文件夹并使用java应用程序打开

java - 类路径和反射