Je travaille sur une application Android qui est déjà partage avec succès un fichier PDF généré via Bluetooth en utilisant la méthode suivante:Comment partager par programme plusieurs fichiers de différents types MIME dans la même intention Android?
public static void sharePdfFile(Context ctx, String pathAndFile) {
try {
Intent share = new Intent(Intent.ACTION_SEND);
share.setPackage("com.android.bluetooth");
share.setType("application/pdf");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(pathAndFile));
share.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(share);
} catch (Exception e) {
ExceptionDAO.Log(CATEGORY.SHARE_INTENT, e, ctx, e.getMessage(), true);
}
}
On m'a demandé d'inclure un second fichier (format CSV) dans cette intention de la part de façon que les deux fichiers sont envoyés ensemble. J'ai immédiatement trouvé this question, qui traite de l'envoi de plusieurs fichiers via Bluetooth, mais seulement en utilisant les fichiers du même type MIME (« video/* » dans cet exemple.)
j'ai trouvé beaucoup d'exemples de MIME générique sous-types ("video/*", "text/*", etc.) mais à ce stade, je n'ai pas trouvé d'exemple d'Intent avec plus d'un ensemble de types MIME spécifique (exemple: "application/pdf" et "text/valeurs séparées par des virgules "). Donc, j'ai créé une méthode de test en utilisant "*/*" comme type MIME en espérant que cela ferait l'affaire. Malheureusement, ma méthode de test ne va même pas assez loin pour activer la fenêtre de partage Bluetooth pour sélectionner un appareil à proximité.
Je ne suis pas sûr de ce que je fais mal ou ai omis. Je n'arrive pas à piéger les erreurs pendant le débogage, donc je suppose qu'il me manque encore quelque chose. Je connais les fichiers PDF et CSV et leur URI sont OK respectifs parce que les deux fichiers transmettent bien par la méthode originale (j'ai changé le type MIME et URI sur la méthode existante pour tester le nouveau fichier CSV.)
ici est ma méthode de test:
public static void shareTwoFilesTest(Context ctx, String pathAndFile, String pathAndFile2) {
try {
Intent share = new Intent(Intent.ACTION_SEND_MULTIPLE);
share.setPackage("com.android.bluetooth");
share.setType("*/*");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(pathAndFile));
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(pathAndFile2));
share.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(share);
} catch (Exception e) {
ExceptionDAO.Log(CATEGORY.SHARE_INTENT, e, ctx, e.getMessage(), true);
}
}
Merci, fonctionne très bien pour partager plusieurs fichiers –