android8 撥話 的寫法

Button按鍵

try {
    if (Build.VERSION.SDK_INT < 23) {
        phoneCall();
    } else {

        if (ActivityCompat.checkSelfPermission(MainActivity.this,
                Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {

            phoneCall();
        } else {
            final String[] PERMISSIONS_STORAGE = {Manifest.permission.CALL_PHONE};
            //Asking request Permissions
            ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS_STORAGE, 9);
        }
    }
}catch (SecurityException ex)
{

}

 

權限內容 可擇一使用

boolean permissionGranted = false;
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    switch (requestCode) {
        case MY_PERMISSION_REQUEST_FINE_LOCATION:
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            } else {
                Toast.makeText(getApplicationContext(), "this app requires location permission to be granted", Toast.LENGTH_SHORT).show();
                ActivityCompat.requestPermissions(this, permissions, 1001 );
            }
            break;
        case 9:
            permissionGranted = grantResults[0]== PackageManager.PERMISSION_GRANTED;
            break;

    }


    if(permissionGranted){
        phoneCall();
    }else {
        Toast.makeText(MainActivity.this, "You don't assign permission.", Toast.LENGTH_SHORT).show();
    }
}

 

 

函數

private void phoneCall(){
    if (ActivityCompat.checkSelfPermission(MainActivity.this,
            Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:0988721860"));
        startActivity(callIntent);
    }else{
        Toast.makeText(MainActivity.this, "沒有自動撥話的權限哦~.", Toast.LENGTH_SHORT).show();
    }
}

 

← 回列表