我一直在摆弄一个紧急情况的联系方式,现在我已经接近完成了。计时器用完后,应用程序应拨打用户之前保存的号码。
我已经非常接近让它自动拨号,但是我似乎只能把它拿到号码并把它放在拨号器中而不拨号码。
我真的希望这是自动的,如何让号码自动调用?
(timer finishes)
String myCallNumber ="tel:" + myPref.getString("phoneINT", "");
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(myCallNumber)));
没有什么说我需要任何额外的权限。实际上,我从一个网页教程中提到了这一点,该教程表示不需要任何权限。
我尝试了这个代码,来自链接副本。但是,它说Call_Action不是真的。
Intent intent = new Intent(Intent.CALL_ACTION);
intent.setData(Uri.parse(myCallNumber));
startActivity(intent);
这个问题不是Can I implement automatic call to someone in Android?的重复!
Intent.CALL_ACTION对我不起作用,Android工作室不会将其识别为命令。
嗨,请检查您是否已获得许可。此外,它应该是“ACTION_CALL”,而不是“CALL_ACTION”
int permissionCheck = ContextCompat.checkSelfPermission(this,
Manifest.permission.CALL_PHONE);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
this,
new String[]{Manifest.permission.CALL_PHONE},
999);
} else {
startActivity(new Intent(Intent.ACTION_CALL).setData(Uri.parse("tel: your_phone_number")));
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case 999:
if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
startActivity(new Intent(Intent.ACTION_CALL).setData(Uri.parse("tel:your_phone_number")));
}
break;
default:
break;
}
}