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(); } }