在Android中以编程方式使用蓝牙发送多个文件

5
我正在开发一个安卓应用程序,可以通过蓝牙连接将多个图像文件传输到另一台移动设备。
我在安卓中使用了以下的传输方法:
ArrayList<Uri> uris=new ArrayList<Uri>();
String multifile[]={"/sdcard/aaa.txt","/sdcard/bbb.txt","/sdcard/ccc.txt"};
int len=multifile.length;
Intent Int=new Intent();
Int.setAction(android.content.Intent.ACTION_SEND_MULTIPLE);
Int.setType("*/*");
for(int i=0;i<len;i++)
{
File file=new File(multifile[i]);
uris.add(Uri.fromFile(file));
}
Int.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Int);

这个方法成功地传输了文件。但是我在Android手机上只有九张图片,然后我的应用程序将继续传输另外一组9张图片,为此我必须调用上面的选择向导来发送文件。 但是我不希望用户反复从选择器中选择选项。
是否有任何方式可以通过该选项(向导中的蓝牙)默默地(无需用户干预)发送文件?
2个回答

1

这对我有用:

不要使用putParcelableArrayListExtra,而是使用putExtra(Intent.EXTRA_STREAM, uris)

这个问题在一个月前被提出,所以我不知道对你是否有用,但也许可以帮助其他人 :)


1
ArrayList<Uri> uris = new ArrayList<Uri>();
        mul = fileSelectorList;
         Log.d("final",""+mul);
        int length = mul.size();

        //Toast.makeText(ImageActivity.this, "Send", Toast.LENGTH_LONG).show();
        //mail_int.setAction(android.content.Intent.ACTION_VIEW);
        mail_int.setAction(android.content.Intent.ACTION_SEND_MULTIPLE);
    //mail_int.setAction(android.content.Intent.ACTION_TIME_CHANGED);
        mail_int.setType("image/*");
        for(int i = 0; i < length; i++) {
            File file = new File(mul.get(i));
            uris.add(Uri.fromFile(file));

        }

        mail_int.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
        startActivity(mail_int); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接