У меня есть приложение с веб-представлением, которое загружает список контактных данных, которые пользователи могут совершать голосовые вызовы, нажав на этот номер. На веб-странице используется тег tel: . Ниже приведен код, который я написал.
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
final Uri uri = request.getUrl();
if (uri.toString().startsWith("tel:"))
makePhoneCall(uri.toString());
return super.shouldOverrideUrlLoading(view, request);
}
makePhoneCall ()
public void makePhoneCall(String phoneNumber) {
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL);
checkPermissions();
} else {
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse(phoneNumber)));
}
}
проблема в том, что ..
После установки на многих устройствах, на некоторых устройствах пользователи не могут позвонить, при нажатии на номер ничего не происходит. Я уверен, что событие касания происходит, потому что через 5 секунд после нажатия на номер появляется всплывающее окно, которое работает нормально.
Некоторые устройства - Nokia, Asus Zenfone Max с Android Oreo.
Я проверил версии для Android, большинство устройств имеют версию для Android 6+.
- Я запускаю webView в другом потоке, созданном из onCreate ();
пока на других устройствах все отлично работает.
Я не могу понять, что здесь происходит.