5

Tôi đã triển khai Dexter trong ứng dụng của mình. Nó hoạt động tốt cho CAMERA, BẢO QUẢN LẠNH NGOÀI và BẢO QUẢN INTERNAL. Tôi muốn gọi bằng PHONE_CALL với Dexter. Khi tôi gọi ý định cho cuộc gọi điện thoại như thế này:PHONE_CALL quyền không hoạt động trong Dexter

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

sau đó startActivity chương trình cảnh báo Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential SecurityException less... (Ctrl+F1)

Tôi không hiểu rằng tôi có thực hiện Dexter thì tại sao startActivity muốn tự cho phép?

Trả lời

2

Đối với API 23+ bạn nên kiểm tra cho phép như:

if (mContext.checkSelfPermission(Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) { 
    Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + strNum)); 
    startActivity(callIntent): 
} 

Intent.ACTION_CALL intent, đòi hỏi một sự cho phép, cụ thể là android.permission.CALL_PHONE một. Nhưng đối với sdk> = 23 bạn cần phải kiểm tra trong thời gian chạy với Manifest.permission.CALL_PHONE. Nó dành cho targetsdkversion 23 trở lên.

Nếu bạn hạ thấp tỷ lệ nhắm mục tiêu của mình xuống dưới 23 thì bạn không cần sự suy giảm này và Intent.ACTION_CALL sẽ hoạt động tốt.

+0

Tôi biết điều đó. Nhưng tôi đã sử dụng thư viện Dexter cho mô hình cho phép. Sau đó, tại sao tôi phải kiểm tra quyền tự và điều khác là nếu tôi sử dụng 'Intent.ACTION_DIAL' thay vì' Intent.ACTION_CALL' thì nó không hiển thị cảnh báo. Vì vậy, tôi không hiểu tôi nên làm gì? –

+0

Kiểm tra câu trả lời đã chỉnh sửa của tôi .. Intent.ACTION_DIAL sẽ không thực hiện cuộc gọi trực tiếp .. nó sẽ hiển thị trình quay số với số bạn đã chèn .. Đó là lý do tại sao Intent.ACTION_DIAL không cần quyền khi người dùng xác nhận thực hiện cuộc gọi theo cách thủ công ..... –

+0

Tôi muốn kiểm tra quyền PHONE_CALL chỉ bằng Dexter. Có thể hay không? và nếu có thể thì làm thế nào? –

Các vấn đề liên quan