2016-09-03 1 views
0

Ich versuche, Wissen in Android Studio zu bekommen, um Apps so zu machen, wenn dieses Code-Snippet gefunden.wenn FileProvider in Android Studio zu verwenden ... völlig Anfänger Programmierer

enter code herestatic final int REQUEST_TAKE_PHOTO = 1; 
private void dispatchTakePictureIntent() { 
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
// Ensure that there's a camera activity to handle the intent 
if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
    // Create the File where the photo should go 
    File photoFile = null; 
    try { 
     photoFile = createImageFile(); 
    } catch (IOException ex) { 
     // Error occurred while creating the File 
     ... 
    } 
    // Continue only if the File was successfully created 
    if (photoFile != null) { 
     Uri photoURI = FileProvider.getUriForFile(this, 
               "com.example.android.fileprovider", 
               photoFile); 
     takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); 
     startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); 
    } 
} 

}

ich fast den gesamten Code zu verstehen, aber ich nur verwirrt mit "FileProvider" !! was ist das? und wenn wir es benutzen?

+0

[FileProvider] zur Verfügung gestellt (https://developer.android.com/reference/android/support/v4/ content/FileProvider.html) –

Antwort

0

Im Fall des Codes wurde verwendet, um die aktuelle Datei (des Fotos) zu erstellen und bekommen die handle ...

// Create the File where the photo should go 
    File photoFile = null; 
    try { 
     photoFile = createImageFile(); 
    } catch (IOException ex) { 
     // Error occurred while creating the File 
     ... 
    } 

..then mit dem Griff seine URI (Standort erhalten auf dem Telefonspeicher)

Uri photoURI = FileProvider.getUriForFile(this,"com.example.android.fileprovider", photoFile); 

... und dann das Foto machen. Speichern auf dieser Position (der URI)

takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); 
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); 

ziemlich gut kommentiert in dem Code, den Sie

+0

danke für diese Antwort. Ich bekomme wirklich neue Infos. von dir und kannst du mir sagen, wofür der _Uri_ benutzt wird? –

+0

Der URI ist der [Uniform Resource Identifier] (https://tools.ietf.org/html/rfc3986). Es ist eine kompakte Folge von Zeichen, die eine abstrakte oder physische Ressource identifiziert .... es kann verwendet werden, um eine Ressource zu benennen oder sie zu lokalisieren (wie oben verwendet). Es ähnelt einem Dateipfad oder einer Web- oder FTP-Adresse zu einem bestimmten Objekt ... nur dass es in diesem Fall den Speicherort der Datei angibt, in der das aufgenommene Foto gespeichert werden soll. Ansonsten (Google den Rest) [https://www.google.com/search?q=define%3Auri] ... und weiter zu (Android Developers) [https://developer.android.com]/index .html – user919426

Verwandte Themen