我们知道您可以使用以下代码打开呼叫应用程序:
startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:0377778888")));
是否可以直接拨打电话而无需通过设备的默认应用程序?
答案 0 :(得分:3)
此代码段直接调用:
// Check the SDK version and whether the permission is already granted or not.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CALL_PHONE}, PERMISSIONS_REQUEST_PHONE_CALL);
} else {
//Open call function
String phone = "7769942159";
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:+91" + phone));
startActivity(intent);
}
在清单中使用此权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
答案 1 :(得分:2)
是的,您只需在代码中将Intent.ACTION_DIAL
替换为Intent.ACTION_CALL
即可。
您必须获得该应用的CALL权限。
对于Marshmallow以下的设备,只需将清单下方的行放在清单标记下
<uses-permission android:name="android.permission.CALL_PHONE" />
。
但对于Marshmallow或以上的OS设备,您需要在清单中声明权限,如下所示
<uses-permission-sdk-23 android:name="android.permission.CALL_PHONE" />
您需要询问用户对CALL_PHONE访问的运行时权限。 要求许可
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.CALL_PHPNE})
检查权限
ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED
了解更多信息https://developer.android.com/training/permissions/requesting.html
答案 2 :(得分:1)
您正在寻找ACTION_CALL
:https://developer.android.com/reference/android/content/Intent.html
答案 3 :(得分:1)
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phno);
startActivity(intent);
Android Manifest
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>