我们有一个程序,我们在手机上安装并将电话借给用户一段时间.我们希望这些手机仅用于运行我们的应用程序(没有电话,没有游戏,没有任何东西).手机将扎根.
所以我们需要的东西:
它不一定是"黑客证明",但应足以防止普通用户弄乱设备.
这可能吗?我在Symbian和Windows Mobile上做过类似的事情,但我对Android上的这些东西没有多少经验.怎么可能实现这一目标?
更新2015:如果您不介意将您的应用程序限制为单一手机供应商,三星已推出KNOX SDK,可让您轻松实现自助服务终端模式,而无需根植于手机.详情请见:https://seap.samsung.com/developer/sdk/knox-standard-android
我看到很多问题,在Android中以编程方式结束呼叫是不可能的.同时,我在googleplay市场上看到很多拨号器应用程序,您可以在其中激活呼叫并将其丢弃.他们是如何工作的?
编辑:我读过我的应用程序必须是系统应用程序的地方.那么如何制作系统,系统和用户应用程序之间有什么区别?
这是SO中一个熟悉的问题.我需要的是以编程方式结束通话.我经常搜索过......
http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html http://androiddesk.wordpress.com/2012/08/02/blocking-a-call-without-user-intervention -in-的Android /
http://www.emoticode.net/android-sdk/block-incoming-and-outgoing-phone-calls-programmatically.html
如何在Android应用程序开发中阻止手机号码呼叫和消息接收?
和http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html
还有更多问题,答案和建议......
所有人都说ITelephonyService.aidl与TelephonyManager结合使用
并且该解决方案在许多设备上都运行良好,但它不适用于Samsung S Duos.我挣扎了一个星期,但没有得到解决方案..是否有任何特殊的API可以在这种类型的设备上工作?我如何拒绝来电?请帮我...
在我的应用程序中,我将保留联系人列表.
来自列表中的联系人的任何呼叫都将被删除.他们将在未接来电时显示,但手机不会响铃.
我需要通过android的上层版本中的代码断开调用.
根据文件,我们无权这样做,因为它是私人的.
在搜索SO时,我找到了不同的解决方案,直到棒棒糖.
内联是我迄今为止尝试过的方法.
方法一:
public void disconnectCall(String type){
try {
String serviceManagerName = "android.os.ServiceManager";
String serviceManagerNativeName = "android.os.ServiceManagerNative";
String telephonyName = "com.android.internal.telephony.ITelephony";
Class<?> telephonyClass;
Class<?> telephonyStubClass;
Class<?> serviceManagerClass;
Class<?> serviceManagerNativeClass;
Method telephonyEndCall;
Object telephonyObject;
Object serviceManagerObject;
telephonyClass = Class.forName(telephonyName);
telephonyStubClass = telephonyClass.getClasses()[0];
serviceManagerClass = Class.forName(serviceManagerName);
serviceManagerNativeClass = Class.forName(serviceManagerNativeName);
Method getService = // getDefaults[29];
serviceManagerClass.getMethod("getService", String.class);
Method tempInterfaceMethod = serviceManagerNativeClass.getMethod("asInterface", IBinder.class);
Binder tmpBinder = new Binder();
tmpBinder.attachInterface(null, "fake");
serviceManagerObject = tempInterfaceMethod.invoke(null, tmpBinder);
IBinder retbinder = (IBinder) getService.invoke(serviceManagerObject, "phone");
Method serviceMethod …Run Code Online (Sandbox Code Playgroud)