我想为android构建一个应用程序并确保用户只能使用这个应用程序。(即用户不应该能够打开或安装任何其他应用程序。)
是否可以在 Android 设备上强制执行此类限制?如果是我应该从哪里开始?
我想为android构建一个应用程序并确保用户只能使用这个应用程序。(即用户不应该能够打开或安装任何其他应用程序。)
是否可以在 Android 设备上强制执行此类限制?如果是我应该从哪里开始?
您正在寻找的是所谓的“信息亭模式”(只是为了帮助您搜索适当的术语)。
标准的 android api 中没有这样的东西(至少......还没有:参见编辑)。用户始终可以按主页按钮返回主页应用程序。
但存在解决方案:
这个解决方案有点弱(但可能符合您的要求?):开发一个“家庭应用程序”(这很容易:只需在清单中添加这样的内容:
<activity android:name="MyCustomHome"
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
这样,当用户按下主页按钮时:他将必须选择要使用的主页应用程序,如果用户决定将您的应用程序设为默认主页:当按下主页按钮时,他将始终返回您的应用程序。
缺点:主页按钮不是退出当前应用程序的唯一方法,因此此解决方案不会真正阻止用户(例如:在三星上,从上到下滑动始终显示工具栏......用户可以从那里做任何事情)
使用特定的构造函数扩展:
我猜其他构造函数也存在其他解决方案,但我不知道它们。
编辑/更新
使用 Android-5.0-Lollipop:屏幕固定 api允许您以kiosk-mode运行您的应用程序。kiosk-mode的 android 术语是screen-pinning-mode。
要使您的应用程序在屏幕固定模式下运行,您必须使用Activity.startLockTask(和Activity.stopLockTask()来退出屏幕固定模式)。
默认情况下,用户必须批准屏幕固定模式(当您的应用调用时会提示弹出窗口startLockTask
)。
如果您的应用是设备所有者:则不会提示用户,您可以在不确认的情况下进入屏幕固定模式。
用户还可以通过选择手动启用应用程序的屏幕固定模式:设置 > 安全 > 屏幕固定。(在这种情况下:用户可以通过同时按住返回和最近按钮退出屏幕固定模式)
安卓开发者的设置单一用途设备页面已经描述了这些事情,您可以从那里轻松了解更多事情。