我们有一个程序,我们在手机上安装并将电话借给用户一段时间 . 我们希望这些手机仅用于运行我们的应用程序(没有电话,没有游戏,没有任何东西) . 手机将扎根 .
所以我们需要的东西:
-
全屏运行,其他任何内容都不可见
-
主页按钮和其他设备按钮不起作用
-
我们的应用程序将在启动时自动运行
它不一定是“黑客证明”,但应足以防止普通用户弄乱设备 .
这可能吗?我在Symbian和Windows Mobile上做过类似的事情,但我对Android上的这些东西没有多少经验 . 怎么可能实现这一目标?
UPDATE 2015: 如果您不介意将您的应用程序限制为单一手机供应商,三星已推出KNOX SDK,可让您轻松实现自助服务终端模式,而无需支持手机 . 详情请见:https://seap.samsung.com/developer/sdk/knox-standard-android
4 回答
是的,但是你无法控制
Home key
和end call key
的行为 .对于全屏,将
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
添加到清单文件中的活动标记 .要禁用来电,您需要拨打电话:
注意:停止服务时不要删除侦听器并将这些权限添加到清单文件中:
并以编程方式断开呼叫:
注意:添加此文件以断开呼叫:http://dl.dropbox.com/u/31740476/ITelephony.aidl
要禁用密钥,您需要覆盖:
在主页按键上会出现主屏幕,所以为了解决这个问题,您需要实现一项服务,您需要实现一个无限的线程来重新启动您的应用程序,如下所示:
EDIT
您需要添加以下权限才能结束通话:
您可以使用以下AIDL文件:
Vineet的解决方案有效 . 但是,我认为它需要两个以上的权限,我发现here
所以需要的权限是
虽然这样对我有用
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
你也可以看看这个:https://github.com/ligi/Setec-Astronomy对于无耻的自我插件感到抱歉但我们有相同的问题;-)
@Vineet Shukla:
READ_PHONE_STATE
权限不足以使它工作 . 您还需要CALL_PHONE
权限才能结束通话 .MODIFY_PHONE_STATE
(如Zaki Choudhury所说)是系统权限,只能在有根设备上使用,代码的任何部分都不需要 .