1

我的代碼如何刪除「調用需要的權限,其可能..」錯誤Android Studio中

private void continueCall() { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:" + phoneNoToCall)); 
     startActivity(callIntent); 
} 

上面是否需要在運行時,我已經檢查作爲

private void call() { 
    if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) { 
     continueCall(); 
    } else { 
     requestCallPermission(); 
    } 
} 

用戶授予權限CALL_PHONE仍然Android工作室顯示錯誤「電話需要許可,可能...」

如何清除此錯誤?或者至少抑制它。

+0

通過點擊黃色燈泡抑制它 –

+0

看這裏https://github.com/tananaev/traccar-client-android/issues/187 –

回答

3

的方法continueCall()可以從多個地方被調用。因此,它不能保證在call()

權限檢查,以便您可以通過添加只取消錯誤:

@SuppressWarnings("MissingPermission")

0

我想你需要CALL_PRIVILEGED權限:

CALL_PRIVILEGED

在API級別1

字符串CALL_PRIVILEGED允許應用程序撥打任何號碼, 包括緊急呼叫,而無需通過去Dialer用戶界面,用戶可以確認正在進行的呼叫。

不適用於第三方應用程序。

常數值: 「android.permission.CALL_PRIVILEGED」

1

你需要把

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setData(Uri.parse("tel:" + phoneNoToCall)); 
startActivity(callIntent); 

內如果塊

private void call() { 
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:" + phoneNoToCall)); 
     startActivity(callIntent); 
    } else { 
     requestCallPermission(); 
    } 
} 
+0

謝謝,你的答案和你一樣美麗 –