Я занимаюсь разработкой приложения для Android.Я использовал webview для загрузки своего сайта Moodle;все хорошо, но кнопка "загрузить" не работает!Когда, например, я нажимаю кнопку «Загрузить», чтобы загрузить свою фотографию в профиль Moodle, ничего не происходит.Я включил в файл манифеста следующее:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<!--
Allows Glide to monitor connectivity status and restart failed requests if users go from a disconnected to a connected network state.
-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
И в MainActivity были добавлены следующие строки:
<if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
int hasCameraPermission =
checkSelfPermission(Manifest.permission.CAMERA);
Log.d(TAG, "has camera permission: " + hasCameraPermission);
int hasRecordPermission =
checkSelfPermission(Manifest.permission.RECORD_AUDIO);
Log.d(TAG, "has record permission: " + hasRecordPermission);
int hasAudioPermission =
checkSelfPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS);
Log.d(TAG, "has audio permission: " + hasAudioPermission);
List<String> permissions = new ArrayList<>();
if (hasCameraPermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.CAMERA);
}
if (hasRecordPermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.RECORD_AUDIO);
}
if (hasAudioPermission != PackageManager.PERMISSION_GRANTED) {
permissions.add(Manifest.permission.MODIFY_AUDIO_SETTINGS);
}
if (!permissions.isEmpty()) {
requestPermissions(permissions.toArray(new
String[permissions.size()]),111);
}
}
Также добавлено следующеена веб-активности:
wvs.setWebChromeClient(new WebChromeClient() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onPermissionRequest(final PermissionRequest request) {
SiteActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
request.grant(request.getResources());
}
});
}
@Override
public void onPermissionRequestCanceled(PermissionRequest
request) {
// The following line was underlined red so I commented it out!
//Log.d(TAG, "onPermissionRequestCanceled");
}
});
После добавления вышеупомянутых строк, когда я запускаю приложение, меня просят дать разрешение, но затем в веб-просмотре открывается белая страница, и ничего не происходит!
Кроме того, запись аудио и видео не работает внутри сайта Moodle, работающего в веб-просмотре!Это также может помочь выяснить проблему!
Не могли бы вы помочь мне устранить проблему.Я высоко ценю вашу помощь.Фарамарз