В настоящее время у меня проблема с управлением запросами с использованием Geckoview . Android, встроенный в WebView не вариант для меня, потому что веб -сайт, который я хочу открыть, не совместим с Chrome. Его можно открыть только с помощью Mozilla , так что Geckoview - моя альтернатива. < /p>
Проблема, которую я столкнулся, заключается в предоставлении разрешения на использование микрофона и запись звука. Потому что веб -сайт, который я пытаюсь открыть в Geckoview Records Audio (Voice Collection). < /Strong> < /p>
private class ExamplePermissionDelegate implements GeckoSession.PermissionDelegate {
public int androidPermissionRequestCode = 1;
@Override
public void onAndroidPermissionsRequest(GeckoSession session, String[] permissions, Callback callback)
{
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED){
Log.i(TAG, "Android Permission Needed");
requestPermissions(permissions, androidPermissionRequestCode);
callback = new ExamplePermissionCallback();
callback.grant();
}
else{
Log.i(TAG, "Android Permission Granted");
callback.grant();
}
}
@Override
public void onContentPermissionRequest (GeckoSession session, String uri, int type, String access, Callback callback)
{
Log.i(TAG, "Content Permission Needed");
}
@Override
public void onMediaPermissionRequest (GeckoSession session, String uri, MediaSource[] video, MediaSource[] audio, MediaCallback callback)
{
Log.i(TAG, "Media Permission Needed");
}
}
< /code>
И это мое разрешение DissionDelegateCallback < /p>
public class ExamplePermissionCallback implements GeckoSession.PermissionDelegate.Callback{
@Override
public void grant() {
int permission = ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.RECORD_AUDIO);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.RECORD_AUDIO},
RECORD_REQUEST_CODE);}
}
@Override
public void reject() {
}
}
Результат гласит 'разрешение на андроид, предоставленное' [/b], и после этого показано, что журнал, который я поместил, необходимое разрешение на медиа -медиа ', и на веб -сайте говорится, что ' В ожидании микрофона '
В настоящее время у меня проблема с управлением запросами с использованием Geckoview . Android, встроенный в WebView не вариант для меня, потому что веб -сайт, который я хочу открыть, не совместим с Chrome. Его можно открыть только с помощью Mozilla , так что Geckoview - моя альтернатива. < /p>
[b] Проблема, которую я столкнулся, заключается в предоставлении разрешения на использование микрофона и запись звука. Потому что веб -сайт, который я пытаюсь открыть в Geckoview Records Audio (Voice Collection). < /Strong> < /p>
Я новичок в Android и Geckoview, почему руководство, которое я использую, является этим проектом https://searchfox.org/mozilla-central/source/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/geckoviewact. В настоящее время я пробую свою программу на этом веб -сайте https://www.onlinemictest.com < /p>
Это мое разрешение dissionDelegate < /p>
[code]private class ExamplePermissionDelegate implements GeckoSession.PermissionDelegate { public int androidPermissionRequestCode = 1; @Override public void onAndroidPermissionsRequest(GeckoSession session, String[] permissions, Callback callback) { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED){ Log.i(TAG, "Android Permission Needed"); requestPermissions(permissions, androidPermissionRequestCode); callback = new ExamplePermissionCallback(); callback.grant(); } else{ Log.i(TAG, "Android Permission Granted"); callback.grant(); } } @Override public void onContentPermissionRequest (GeckoSession session, String uri, int type, String access, Callback callback) { Log.i(TAG, "Content Permission Needed"); } @Override public void onMediaPermissionRequest (GeckoSession session, String uri, MediaSource[] video, MediaSource[] audio, MediaCallback callback) { Log.i(TAG, "Media Permission Needed"); } } < /code>
И это мое разрешение DissionDelegateCallback < /p>
public class ExamplePermissionCallback implements GeckoSession.PermissionDelegate.Callback{ @Override public void grant() { int permission = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECORD_AUDIO); if (permission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_REQUEST_CODE);} } @Override public void reject() { } } [/code]
Результат гласит 'разрешение на андроид, предоставленное' [/b], и после этого показано, что журнал, который я поместил, необходимое разрешение на медиа -медиа ', и на веб -сайте говорится, что [b]' В ожидании микрофона '[/b]