Android会阻止用户关闭应用

时间:2015-08-10 07:31:31

标签: 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);
        }

但是,我还需要知道该应用何时关闭或被杀?

  

让我试着更好地解释一下。想象一下,如果艺术家想通过10个android设备展示他的作品。一切都在墙上。所以他可以使用这个应用程序。我想锁定设备。只运行这个应用程序,没有别的工作。   当你去一家电话商店并且所有设备都运行一个演示应用程序并且你无法通过密码退出时,也有类似的结果。 (即Apple Store)您无法退出在这些Ipads上运行的应用程序

3 个答案:

答案 0 :(得分:1)

我在Android上专门针对Kiosk模式撰写了一篇文章 - 过去只是'任务固定'。

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

  • 创建一个DeviceAdminReceiver并将其放入清单
  • 然后,运行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
    }
}

答案 1 :(得分:0)

对于这些情况,请不要重新发明轮子,而是安装Android 5.0或更高版本并使用其"kiosk mode" a.k.a. "task pinning"

答案 2 :(得分:0)

正如@Sarge从5.0所说,可以使用Kiosk模式。如果你没有在5.0上运行,请让我知道并“花点时间搜索我的旧项目并给你一个pré棒棒糖自制的Kiosk模式(不需要闪存平板电脑或任何东西,只需编程)