在安卓系统中开发运行于展示模式的应用程序

11
如何制作类似于 kiosk 模式应用的应用程序(SureLock 锁定应用程序)?
我有一台 LG E400 安卓手机运行 Android 2.3.6,我想开发一个类似于SureLock的应用程序,我需要开发这样的应用程序需要什么?
是否有人能够帮助我自己开发这样的应用程序?
我的要求是: 安卓设备启动时运行我的应用程序。 对于这个应用程序,所有硬件按钮都被禁用(Home、Back、Menu),与 SureLock 应用程序相似。

被接受的答案和得到最多赞同的答案都不能完全将您的应用程序锁定在 kiosk 模式下。关于这个问题,SO 上有重复的问题,所以我不会回答这个问题,但是我在这里提供了不同解决方案的优缺点的答案:https://dev59.com/JVgQ5IYBdhLWcg3wynGn#43644803 - Trevor Halvorson
2个回答

28

好的...我自己苦苦挣扎了几个小时,却在网上找不到任何相关信息...(不需要对手机进行root操作)

主页按钮::::

<category android:name="android.intent.category.HOME" />

处理主页底部...

返回按钮 ::::

@Override
public void onBackPressed() {
    // We doing this too stop user from exiting app, normally.
    // super.onBackPressed();
}

长按主屏幕键(最近使用的应用程序或Google Now)或最近应用程序键...

@Override
protected void onPause() {
    super.onPause();

    ActivityManager activityManager = (ActivityManager) getApplicationContext()
            .getSystemService(Context.ACTIVITY_SERVICE);

    activityManager.moveTaskToFront(getTaskId(), 0);
}

需要获得许可才能...

<uses-permission android:name="android.permission.REORDER_TASKS" />

警告...这可能会让你的手机变砖...我想...只要你勾选了始终允许你的机器USB调试...那么你应该没问题...这样你就可以从你的机器上更改代码并重新部署它。 - Clifford
1
您可以始终使用硬按键进入引导程序,并从那里进行闪存。这样做可能不太有趣,但会让您与“砖头”保持安全距离。 - Vaiden
8
用户可以从设置中删除应用程序,因为通过这种方式仍然可以打开通知栏。 - Selin
1
顶部菜单怎么样? - user1532587
这个拦截器会如何拦截Home键长按事件?看起来只是在暂停时将主屏幕置于前台...(?) - JohnyTex
显示剩余3条评论

7
如果您的应用程序像主屏幕一样运行,并且没有其他主屏幕安装(或者将您的应用程序选为默认),它将在启动时启动,您将无法退出。除非您以某种方式终止该任务,但这是不可预防的。
您的应用程序必须使用
android.intent.category.HOME

意图是成为开机后第一个可见的应用程序。

如果您需要一些参考源代码,可以查看Anderweb的ADW Launcher: https://github.com/AnderWeb/android_packages_apps_Launcher


谢谢您的帮助。但是我该如何在我的应用程序运行时禁用按钮?我的意思是禁用硬件按钮功能(返回、主页和菜单按钮)。 - PrasadM
这是一个返回按钮的例子。你可能还需要捕获搜索按钮。主页不应该是问题,因为你的应用将成为主页应用。 - Dominic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接