3

我想为android构建一个应用程序并确保用户只能使用这个应用程序。(即用户不应该能够打开或安装任何其他应用程序。)

是否可以在 Android 设备上强制执行此类限制?如果是我应该从哪里开始?

4

2 回答 2

2

您正在寻找的是所谓的“信息亭模式”(只是为了帮助您搜索适当的术语)。

标准的 android api 中没有这样的东西(至少......还没有:参见编辑)。用户始终可以按主页按钮返回主页应用程序。

但存在解决方案:

  1. 编写家庭应用程序

这个解决方案有点弱(但可能符合您的要求?):开发一个“家庭应用程序”(这很容易:只需在清单中添加这样的内容:

<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>

这样,当用户按下主页按钮时:他将必须选择要使用的主页应用程序,如果用户决定将您的应用程序设为默认主页:当按下主页按钮时,他将始终返回您的应用程序。

缺点:主页按钮不是退出当前应用程序的唯一方法,因此此解决方案不会真正阻止用户(例如:在三星上,从上到下滑动始终显示工具栏......用户可以从那里做任何事情)

  1. 使用特定的构造函数扩展:

    • samsung-knox是针对最近的三星设备的解决方案(警告:对于企业而言,它是一个庞大而复杂的安全解决方案:许多组件可以做很多事情,我认为您需要成为三星合作伙伴才能访问 kiosk-mode api)
    • 对于摩托罗拉:有一个名为EnterpriseHomeScreen的应用程序,可用于在 kiosk 模式下运行您自己的应用程序

我猜其他构造函数也存在其他解决方案,但我不知道它们。


编辑/更新

使用 Android-5.0-Lollipop:屏幕固定 api允许您以kiosk-mode运行您的应用程序。kiosk-mode的 android 术语是screen-pinning-mode

要使您的应用程序在屏幕固定模式下运行,您必须使用Activity.startLockTask(和Activity.stopLockTask()来退出屏幕固定模式)。

默认情况下,用户必须批准屏幕固定模式(当您的应用调用时会提示弹出窗口startLockTask)。

如果您的应用是设备所有者:则不会提示用户,您可以在不确认的情况下进入屏幕固定模式。

用户还可以通过选择手动启用应用程序的屏幕固定模式:设置 > 安全 > 屏幕固定。(在这种情况下:用户可以通过同时按住返回和最近按钮退出屏幕固定模式)

于 2014-10-14T23:20:12.393 回答
0

安卓开发者的设置单一用途设备页面已经描述了这些事情,您可以从那里轻松了解更多事情。

于 2016-10-03T12:44:20.110 回答