In Ihrem Manifest-Datei unter Berechtigungen geben
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Runtime-Berechtigungen in Ihrer Java-Datei geben:
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, EXTERNAL_PERMISSION_CODE);
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, READ_PERMISSION_CODE);
}
Methode für Bilder in den internen Speicher/SD-Karte Speichern
(Wenn Sie versuchen, in den externen Speicher des Geräts zu schreiben, zuerst t Der Android versucht die installierte SD-Karte auf dem Gerät zu finden und schreibt darauf. Wenn SD-Karte nicht verfügbar ist, dann werden die Daten im Gerät internen Speicher geschrieben:
private void saveImageToLog(){
String timeStampString = Calendar.getInstance().get(Calendar.MILLISECOND);
File appDirectory = new File(Environment.getExternalStorageDirectory() + "/MyAppImageLog");
File photo = new File(appDirectory, "photo_" + timeStampString+ ".png");
if (!appDirectory.exists()) {
appDirectory.mkdir();
}
if (photo.exists()) {
photo.delete();
}
try {
Bitmap bmp = bitmapImage;
FileOutputStream fos = new FileOutputStream(photo.getPath());
bitmapImage.compress(Bitmap.CompressFormat.PNG, 0, fos);
fos.flush();
fos.close();
}catch (Exception e){
e.printStackTrace();
Log.v("log_tag", e.toString());
testInvalid = "";
}
}
haben Sie hinzufügen ** Laufzeit Erlaubnis ** für ** Galaxie S6 Rand mit Android 7.0 ** –
Vorerst habe ich eine Schaltfläche, die den Screenshot auslöst, um zu überprüfen, ob er funktioniert. – maivenn