我正在开发一个应用程序,其中我们需要的一件事是控制传出呼叫,至少能够从我们的应用程序中阻止它.
我尝试过使用Intent.ACTION_CALL现有的活动:
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));
startActivity(callIntent);
Run Code Online (Sandbox Code Playgroud)
但是通过API似乎不允许停止呼叫.
你能建议一些解决方法吗?
例如:在通话期间启用飞机模式?只是一个例子; 这个黑客对我不起作用.
我们有一个程序,我们在手机上安装并将电话借给用户一段时间.我们希望这些手机仅用于运行我们的应用程序(没有电话,没有游戏,没有任何东西).手机将扎根.
所以我们需要的东西:
它不一定是"黑客证明",但应足以防止普通用户弄乱设备.
这可能吗?我在Symbian和Windows Mobile上做过类似的事情,但我对Android上的这些东西没有多少经验.怎么可能实现这一目标?
更新2015:如果您不介意将您的应用程序限制为单一手机供应商,三星已推出KNOX SDK,可让您轻松实现自助服务终端模式,而无需根植于手机.详情请见:https://seap.samsung.com/developer/sdk/knox-standard-android
这是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可以在这种类型的设备上工作?我如何拒绝来电?请帮我...
我认为这是一个基本问题.是否有任何选项可以通过使用intent来停止活动.
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:5554"));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这是我的代码.如果用户忙或什么的话,我想停止这个活动(这意味着,我想放弃这个电话).我能做些什么?我试过这个:
if (condition) {
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:5554"));
startActivity(intent);
}else {
this.finish();
}
Run Code Online (Sandbox Code Playgroud)
但没有用.有人有建议吗?
我想实现一个用于阻止移动号码的应用程序,用于接收或发送呼叫和消息.在我的应用程序中,我在EditText框中输入手机号码然后我点击一个按钮来阻止用户输入的手机号码.
我已经实现了一个活动类,如下所示:
public class BlockNumberActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button)findViewById(R.id.block)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String mobileNumer = ((EditText)findViewById(R.id.mobileNum)).getText().toString();
//How to block entered mobileNumber
}
});
((Button)findViewById(R.id.unblock)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String mobileNumer = ((EditText)findViewById(R.id.mobileNum)).getText().toString();
//How to unblock entered mobileNumber
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我想我们可以使用BroadcastReceiver.但我对它没有更多的了解.请告诉我如何实现阻止或解锁移动号码.请任何人帮我.....
在我的应用程序中,我将保留联系人列表.
来自列表中的联系人的任何呼叫都将被删除.他们将在未接来电时显示,但手机不会响铃.
这个问题更像是一个"有可能"的问题.
在显示传入呼叫者的身份时,Android是否可以使用应用程序中的其他联系人列表?
因此,例如,如果一个人打电话并且他们的身份在应用联系人列表中,但不在内部设备联系人列表中,我想让在应用联系人列表中找到的ID显示在来电的来电显示上.
任何见解将不胜感激!
可能重复:
如何在android中阻止调用
谁能告诉我如何在android中以编程方式拒绝来电?
是否可以同时启动和运行3G和Wifi连接.我想通过两个接口同时传输.
但是我注意到当Wifi上升时,3G正在下降.实际上,似乎路由表在接口的开/关上更新.
1)路由表UMTS开/ Wifi开
a.b.c.1 dev rmnet0
a.b.c.0/24 dev rmnet0 src a.b.c.2
default via a.b.c.1 dev rmnet0
Run Code Online (Sandbox Code Playgroud)
2)路由表Wifi on/UMTS on
192.168.1.0/24 dev eth0 src 192.168.1.147
default via 192.168.1.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
3)有wifi,我跑了:
# ip link set rmnet0 up
# ip route
192.168.1.0/24 dev eth0 src 192.168.1.147
a.b.c.0/24 dev rmnet0 src a.b.c.2
default via 192.168.1.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
当我看到我认为我已经设法将两个设备都启动并运行.然而,这种情况并非如此.当我ping公共互联网地址(abc3)时,如果情况1)和2)一切顺利.在案例3)我得不到答案.
Android在哪些方面设置一次只能有一个设备可用?如何使两个接口都可用,就像在普通的Linux机器上一样.
PS:我已经尝试了[1]中的解决方案,当wifi打开时启用数据连接,没办法.
[2] 如何在android中阻止调用 - >使用ITelephony获取telephonyService.enableDataConnectivity(); 但我得到一个例外.
我正在 android 中构建一个应用程序,当我的手机接到任何电话时,它将执行一个操作。我已经用广播接收器和电话状态监听器尝试过这个。但它不起作用。如果我使用活动,则电话状态侦听器运行良好,但它不适用于广播接收器。我在做什么错?请任何身体帮助....
感谢和问候
我已经使用以下代码以编程方式断开调用,但它无法正常工作.
private void callDisconnect(){
try{
TelephonyManager manager = (TelephonyManager)this.getSystemService(this.TELEPHONY_SERVICE);
Class c = Class.forName(manager.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephony = (ITelephony)m.invoke(manager);
telephony.endcall();
} catch(Exception e){
Log.d("",e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我吗?我需要更改代码还是什么......?