您好我正在尝试制作允许我自动拨打电话的按钮
这就是我实际打电话的方式
String number = "1234";
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel",number,null));
startActivity(intent);
但我必须通过按拨号器中的电话图标确认拨打电话。是否有可能使其自动化?
答案 0 :(得分:0)
使用操作Intent.ACTION_CALL
,所以,改变这个:
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel",number,null));
有了这个:
Intent intent = new Intent(Intent.ACTION_CALL, Uri.fromParts("tel",number,null));
添加权限:
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.CALL_PHONE)) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CALL_PHONE},
1);
}
}
处理许可:
@Override
public void onRequestPermissionsResult(int requestCode,
@NonNull String permissions[],
@NonNull int[] grantResults) {
switch (requestCode) {
case 1: {
if ((grantResults.length > 0) && (grantResults[0] +
grantResults[1]) == PackageManager.PERMISSION_GRANTED) {
//Call whatever you want
}
}
}
}
答案 1 :(得分:0)
试试这段代码,它会对你有帮助。
String number = "1234";
在Uri获取号码
Uri numberUri = Uri.parse("tel:"+number);
拨号代码
Intent callIntent = new Intent(Intent.ACTION_DIAL, numberUri);
startActivity(callIntent);
致电代码
Intent callIntent = new Intent(Intent.ACTION_CALL, numberUri);
startActivity(callIntent);
修改强>
在棉花糖中,你必须获得运行时间的许可才能打电话。 如果权限被拒绝,则无法拨打电话。
现在还有其他解决方案我想给你。
您可以在6.0或更高版本中进行自动呼叫,而无需获得运行时权限。但为此,您必须将
targetSdkVersion
设置为19
或低于22
。那么会发生什么,所有权限都将自动启用,因为Android OS
会将其作为旧应用程序并允许,而不会获得运行时权限。但还有一个问题。通过进行设置手动禁用权限后,它将无法工作。