5

Zaimplementowałem w mojej aplikacji Dexter. Działa to dobrze dla pozwolenia CAMERA, ZEWNĘTRZNEGO MAGAZYNOWANIA i WEWNĘTRZNEGO MAGAZYNOWANIA. Chcę zadzwonić z uprawnieniem PHONE_CALL za pomocą Dexter. Kiedy zadzwonić intencję na telefon tak:Zezwolenie na urządzenie PHONE_CALL nie działa w Dexter

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

następnie startActivity pokazy ostrzegawcze 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)

nie rozumiem, że mam realizować Dexter dlaczego startActivity chcą zgody samodzielne?

Odpowiedz

2

Dla API 23+ należy sprawdzić za zgodą z:

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, który wymaga pozwolenia, a mianowicie android.permission.CALL_PHONE jeden. Ale dla sdk> = 23 musisz sprawdzić środowisko wykonawcze z Manifest.permission.CALL_PHONE. Jest przeznaczony dla targetsdkversion 23 i wyższych.

Jeśli obniżysz wartość docelową poniżej 23, nie będziesz potrzebować tej zgody i zadziała Intent.ACTION_CALL.

+0

Wiem o tym. Ale użyłem biblioteki Dexter dla modelu uprawnień. To dlaczego muszę sprawdzić uprawnienia Self, a jeszcze inną rzeczą jest to, że jeśli użyję 'Intent.ACTION_DIAL' zamiast' Intent.ACTION_CALL', to nie wyświetla ostrzeżenia. Więc nie rozumiem, co powinienem zrobić? –

+0

Sprawdź poprawioną odpowiedź. Intent.ACTION_DIAL nie nawiąże bezpośredniego połączenia ..it wyświetli dialer z wprowadzonym numerem. Dlatego Intent.ACTION_DIAL nie potrzebuje uprawnień, ponieważ użytkownik potwierdza ręczne wykonanie połączenia ..... –

+0

Chcę sprawdzić uprawnienia PHONE_CALL tylko przez Dextera. Czy to możliwe, czy nie? i jeśli to możliwe, to w jaki sposób? –