【发布时间】:2018-06-18 17:08:29
【问题描述】:
我想通过我的 Android 应用程序以编程方式定期拨打/接听电话以进行测试,并从我的网络收集统计信息。所以我的应用程序会每隔一段时间拨打一个号码,当接听电话时,应用程序将在几秒钟后终止通话。从这里开始是我理解的代码。它会拨打和拨打我指定的号码,而无需我触摸屏幕。
public class MainActivity extends AppCompatActivity {
int MY_PERMISSIONS_REQUEST_CALL_PHONE = 101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
call();
}
private void call() {
try {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:2125551212"));
System.out.println("====before startActivity====");
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CALL_PHONE},
MY_PERMISSIONS_REQUEST_CALL_PHONE);
return;
}
startActivity(callIntent);
System.out.println("=====getcallActivity==="+getCallingActivity());
} catch (ActivityNotFoundException e) {
Log.e("helloAndroid","Call failed",e);
}
}
}
清单有这一行:
据我了解,ACTION_CALL 应该拨打我提供的号码,而无需按下 DIAL 按钮。但是就像 ACTION_DIAL 一样,它会在屏幕上显示号码,然后用户必须按下 DIAL 按钮才能拨打电话。那么 ACTION_DIAL 和 ACTION_CALL 没有区别吗?
在阅读了一些帖子后,我了解到需要向用户请求 6.0 以后的权限才能拨打电话(我在上面的代码中使用过)
我的问题是,如果我使用 Lollipop(5.0) 操作系统,那么我可以在不拨号的情况下拨打电话吗?
【问题讨论】:
标签: android android-5.0-lollipop phone-call