2017-08-16 3 views
-3

Ich erstelle eine mobile App, um in regelmäßigen Abständen einen Screenshot zu erstellen. Dann würde das Bild abgerufen und per MMS gesendet werden.So speichern Sie ein Bild im internen Speicher

Mein Problem ist, dass ich mit einer Galaxy S6 Edge mit Android 7.0 arbeite und daher keine Speicherkarte hat. Das Programm läuft auf einem Kitkat Telefon mit einer Speicherkarte, funktioniert aber nicht auf dem S6 Galaxy.

Wie kann das Bild im internen Speicher gespeichert werden? Wie lautet der Pfad zum Zugriff auf die MMS-Anwendung?

Danke

+0

haben Sie hinzufügen ** Laufzeit Erlaubnis ** für ** Galaxie S6 Rand mit Android 7.0 ** –

+0

Vorerst habe ich eine Schaltfläche, die den Screenshot auslöst, um zu überprüfen, ob er funktioniert. – maivenn

Antwort

0

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 = ""; 
    } 
} 
Verwandte Themen