Je développe une application Web à l'aide de Webview
dans le studio Android, mais après avoir rencontré un problème, je dois avoir l'accès ouvert à la caméra. Comment puis-je le faire? J'ai donné l'autorisation suivante dansAndroidManifest.xml
<uses-permission Android:name="Android.permission.CAMERA" />
<uses-feature Android:name="Android.hardware.camera" />
<uses-feature Android:name="Android.hardware.camera.autofocus" />
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
que devrais-je faire plus pour ouvrir la caméra?
si votre application ciblant Android 6.0 et versions ultérieures ajoute une autorisation d'exécution
À partir d'Android 6.0 (API niveau 23), les utilisateurs accordent des autorisations aux applications pendant l'exécution de l'application, et non lors de l'installation.
ajouter l'autorisation d'exécution en utilisant le code ci-dessous pour la caméra
String permission = Manifest.permission.CAMERA;
int grant = ContextCompat.checkSelfPermission(this, permission);
if (grant != PackageManager.PERMISSION_GRANTED) {
String[] permission_list = new String[1];
permission_list[0] = permission;
ActivityCompat.requestPermissions(this, permission_list, 1);
}
et que gérer résultat comme ça
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(AccountClass.this,"permission granted", Toast.LENGTH_SHORT).show();
// perform your action here
} else {
Toast.makeText(AccountClass.this,"permission not granted", Toast.LENGTH_SHORT).show();
}
}
}
lire à propos de permission d'exécution
Je pense que le meilleur moyen ici est d'utiliser l'API WebView pour accorder et refuser des autorisations.
WebChromeClient
;onPermissionRequest()
onPermissionRequestCanceled()
WebView
webView.setWebChromeClient(chromeClient);
Si vous développez une application Web à l'aide de la WebView, vous devez en savoir plus sur JavascriptInterface
fourni par Android. Passer par les liens suivants
Il vous suffit de configurer javascript call back.call cette méthode à partir de votre page Web, de gérer le rappel javascript dans l’Activité/fragment et d’ouvrir la caméra.
Vous devriez également vérifier la réponse de @Nilesh Rathod pour les autorisations d'exécution.
voici les extraits de code qui vous aideront
private class WebAppInterface {
public WebAppInterface(Context context) {
}
@JavascriptInterface
public void openCamera(String title) {
//check permissions and open camera intent;
}
}
mWebView.addJavascriptInterface(new WebAppInterface(this), "PLATFORM_ID");