J'utilise un Android Intent
avec ACTION_SEND
et EXTRA_STREAM
pour partager un PNG généré via un ContentProvider
. Cela fonctionne parfaitement pour e-mail/GMail, Flickr, MMS, etc. mais ne fonctionne pas si je sélectionne Bluetooth dans la boîte de dialogue du sélecteur d'activité.Utiliser ACTION_SEND avec Bluetooth
L'appareil est un HTC Legend fonctionnant sous Android 2.1. L'appareil est capable de partager des images avec mon ordinateur via Bluetooth normalement, mais pas lorsqu'il est appelé par mon application. Je reçois un message de pain grillé avec le texte suivant:
Partage Bluetooth: fichier fichier inconnu non envoyé
La sortie logcat est pas particulièrement instructif. La seule entrée de niveau d'erreur est la suivante, qui semble se produire immédiatement après l'appel de la méthode query
de mon ContentProvider
(elle-même appelée par la méthode openFileHelper
). Il n'y a pas de trace de pile.
E/BluetoothOppSendFileInfo( 337): scheme: content, authority: mydomain.myapp.myprovider
J'ai recherché par la Android Bluetooth source code et je ne peux pas trouver où ce message de journal est écrit uninformative.
Peut-être qu'il y a quelque chose qui ne va pas avec mon ContentProvider
, mais je ne sais pas ce qui se passe comme cela fonctionne pour les autres cibles d'intention.
Est-ce que quelqu'un est au courant des pièges spécifiques à Bluetooth que je puisse ignorer?
Pour ce que ça vaut la peine, voici ce que mon ContentProvider
ressemble:
@Override
public Cursor query(Uri uri,
String[] projection,
String selection,
String[] selectionArgs,
String sortOrder)
{
if (uri.equals(CONTENT_URI))
{
String[] columns = projection == null
? new String[]{"uri", "mime_type", "_data"}
: projection;
MatrixCursor cursor = new MatrixCursor(columns);
cursor.addRow(getColumns(columns));
return cursor;
}
throw new IllegalArgumentException("Unsupported URI");
}
@Override
public ParcelFileDescriptor openFile(Uri uri,
String mode) throws FileNotFoundException
{
return openFileHelper(uri, mode);
}