Könnte mir erklären plaese, wie ich an die Benutzerberechtigung erklären sollteEibisch Berechtigungen und Erklärung
i mit Camera2API arbeiten, und ich solche Code-Snippet implementieren permishion dinamicly
private void openCamera(int width, int height) {
setUpCameraOutputs(width, height);
CameraHelper.configureTransform(width, height, textureView, previewSize, getActivity());
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
if (!cameraOpenCloseLock.tryAcquire(2500, TimeUnit.MILLISECONDS)) {
throw new RuntimeException("Time out waiting to lock camera opening.");
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(
getActivity(), new String[]{android.Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST);
// MY_PERMISSIONS_REQUEST is an
// app-defined int constant. The callback method gets the
// result of the request.
}
}
manager.openCamera(mCameraId, mStateCallback, mBackgroundHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
} catch (InterruptedException e) {
throw new RuntimeException("Interrupted while trying to lock camera opening.", e);
}
}
nach google Docks zu fragen, ich sollte überprüfen, wenn der Benutzer die Erlaubnis verweigern, bevor
gibt es Verfahren, die von falschen
shouldShowRequestPermissionRationale();
01 true zurück
und
Diese Methode gibt true zurück, nach Google, wenn die App vorher diese Berechtigung angefordert hat und der Benutzer die Anforderung verweigert.
, wenn ich das richtig verstanden, nach Google Kommentare innerhalb dieser Methode Implementierung
// dem Benutzer eine Erklärung anzeigen asynchron - nicht blockieren
// diesen Thread wartet die Antwort des Benutzers! Nach dem Benutzer
// sieht die Erklärung, versuchen Sie es erneut, um die Erlaubnis zu verlangen.
Und schließlich zum Beispiel Benutzer verweigern meine Erlaubnis vor und beim nächsten Mal, wenn er mit der Kamera App zu meinem Bildschirm gehen sollte meine castom Pop-up mit Erklärung „Bitte stimmen diese permishion, wenn Sie den Vorgang fortsetzen möchten“ erstellen und für Beispiel Benutzer stimmen diese Zeit und ich sollte diese Methode wieder nach dieser
aufrufen // sieht die Erklärung, versuchen Sie es erneut, um die Erlaubnis zu verlangen.
aber diese Methode
shouldShowRequestPermissionRationale();
Rückkehr mir wieder true
, weil es nicht mit Erlaubnis über die Benutzerabsicht zustimmen wußte.
Können Sie mir bitte erklären, wie man es richtig macht? Vielleicht hast du ein Beispiel?
dieses Probieren Sie es Arbeit sein kann http://stackoverflow.com/a/41221852/5488468 –