Avant Android N
dans mon application après avoir téléchargé un fichier que je l'ouvre comme:Ouvrir un fichier téléchargé dans Android N
Intent myIntent = new Intent(Intent.ACTION_VIEW);
File myFile = new File(result);
String mime = URLConnection.guessContentTypeFromStream(new FileInputStream(myFile));
myIntent.setDataAndType(Uri.fromFile(myFile), mime);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
Depuis Android N
si j'utilise ce code je reçois un FileUriExposedException
, comme l'a suggéré here que je devrais utiliser la FileProvider et obtenir le chemin comme:
Uri contentUri = getUriForFile(getContext(), "com.mydomain.fileprovider", newFile);
puis ouvrez-le avec:
ParcelFileDescriptor.openFile(Uri uri,String mode)
comme suggéré here où il est dit Uri: A content URI associated with a file, as returned by getUriForFile().
Mais dans l'IDE si je ParcelfileDescriptor.open...
il n'y a pas de méthode openFile()
seulement open()
avec un fichier en tant que paramètre, et pas uri. Alors, comment puis-je ouvrir un fichier dans Android N?
Remarque: Je ne souhaite pas ouvrir un fichier avec mon application. Par exemple, si je télécharge un pdf, je veux l'ouvrir avec l'application installée sur le téléphone.
[Cochez cette] (http://stackoverflow.com/a/41570845/6333971) –