Ich habe diese App, die Bild in Galerie auswählen und es mit Imageview zum Test anzeigen wird. Mein Problem ist, dass es auf Android M nicht funktioniert. Ich kann Bild wählen, aber werde nicht auf meinem Test zeigen. Sie sagen, dass ich Erlaubnis fragen muss, um auf Bilder auf android M zuzugreifen, aber weiß nicht wie. bitte hilfe.Wie um Erlaubnis zu fragen, auf Galerie auf Android M. zugreifen?
Antwort
Ab Android 6.0 (API-Stufe 23) gewähren Benutzer Berechtigungen für Anwendungen, während die App ausgeführt wird, nicht wenn sie die App installieren.
Typ 1- Wenn Ihre App Berechtigungen anfordert, zeigt das System dem Benutzer ein Dialogfeld an. Wenn der Benutzer antwortet, ruft das System die onRequestPermissionsResult() -Methode Ihrer App auf und übergibt ihr die Benutzerantwort. Ihre App muss diese Methode überschreiben, um herauszufinden, ob die Berechtigung gewährt wurde. Dem Rückruf wird derselbe Anforderungscode übergeben, den Sie an requestPermissions() übergeben haben.
private static final int PICK_FROM_GALLERY = 1;
ChoosePhoto.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick (View v){
try {
if (ActivityCompat.checkSelfPermission(EditProfileActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(EditProfileActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, PICK_FROM_GALLERY);
} else {
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, PICK_FROM_GALLERY);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults)
{
switch (requestCode) {
case PICK_FROM_GALLERY:
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, PICK_FROM_GALLERY);
} else {
//do something like displaying a message that he didn`t allow the app to access gallery and you wont be able to let him select from gallery
}
break;
}
}
Typ 2- Wenn Sie Runtime-Erlaubnis an einem Ort zurück, um wieder geben, dann können Sie folgenden Link folgen
Android 6.0 multiple permissions
Und in Manifest hinzufügen, die Erlaubnis für Ihre Anforderungen
<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-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
Hinweis- Wenn Manife st.permission.READ_EXTERNAL_STORAGE Fehler erzeugen, dann bitte ersetzen Sie dies durch android.Manifest.permission.READ_EXTERNAL_STORAGE.
==> Wenn Sie mehr über Runtime-Erlaubnis wissen wollen, dann
untenstehenden Link folgen Sie bittehttps://developer.android.com/training/permissions/requesting.html
okay, danke. Ich werde versuchen, dies .. – Crissy
Sie brauchen nicht READ_EXTERNAL_STORAGE, wenn Sie WRITE_EXTERNAL_STORAGE haben. WRITE enthält READ. –
public void pickFile() {
int permissionCheck = ContextCompat.checkSelfPermission(getActivity(),
CAMERA);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
getActivity(),
new String[]{CAMERA},
PERMISSION_CODE
);
return;
}
openCamera();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],
@NonNull int[] grantResults) {
if (requestCode == PERMISSION_CODE) {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openCamera();
}
}
}
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_CODE);
}
Add permissions in Manifest Also
<uses-permission android:name="android.permission.CAMERA" />
- 1. Erlaubnis für Mikrofon auf Android M anfordern
- 2. Android M Anfrage Mehrere Erlaubnis auf einmal
- 3. Ionic App auf Android Marshmallow wiederholt um Erlaubnis fragen, auch nach der Gewährung
- 4. Geolocation ohne um Erlaubnis zu fragen
- 5. Wie kann eine Android-App ohne Erlaubnis auf Klingeltöne zugreifen?
- 6. Broadcast Aktion auf Erlaubnis Änderung in android M
- 7. Android 6.0 - Datei auf externen Speicher herunterladen, ohne um Erlaubnis zu fragen
- 8. Android M Run Time Erlaubnis Probleme
- 9. Wie kontrolliere ich Zeit um Erlaubnis zu fragen Apple Music?
- 10. Kann keine Erlaubnis für ACTION_IMAGE_CAPTURE in Android M erhalten
- 11. Android M Erlaubnis Dialog nicht angezeigt
- 12. Android M Anfrage Erlaubnis funktioniert nicht
- 13. Android 6 Runtime-Berechtigung für den Zugriff auf die Galerie.
- 14. Erteilen Erlaubnis für EXTERNAL_STORAGE in Android M?
- 15. Android M Fingerabdruck-Scanner auf Android Emulator
- 16. Android Espresso, RecyclerViewActions fragen nach Erlaubnis
- 17. Galerie Berechtigungen für verschiedene API auf Android
- 18. Facebook-App ohne um Erlaubnis fragen zu laden
- 19. Android Preview M: Aktivität neu erstellt nach Erlaubnis gewähren
- 20. Wie Subsysteme aus einer m-Datei auf Matlab zugreifen
- 21. CLLocation erneut nach Erlaubnis fragen
- 22. RunTime Permission und nie fragen Erlaubnis
- 23. Speichern einer Bitmap auf Festplatte/Galerie in Android 4.3
- 24. Android - Wie mit ✔ als Text auf Android M
- 25. lesen External Storage Erlaubnis in Android M Fehler
- 26. Meine Corelocation basierte Swift App Erlaubnis des Benutzers nicht zu fragen Standort zugreifen
- 27. Facebook - JavaScript SDK - So fragen Sie automatisch um Erlaubnis
- 28. Android-Benutzer-Erlaubnis, auf das Internet zuzugreifen
- 29. Fotos fehlen in der Galerie auf Android
- 30. Sollte ich vor dem Senden anonymer Nutzungsinformationen um Erlaubnis fragen?
Bevor Entwickler lesen Frage stellen hier nur Websites einmal – Piyush