通过蓝牙将文件发送到没有安装应用程序的Android设备

时间:2016-01-15 09:06:31

标签: android bluetooth android-bluetooth rfcomm

我正在寻找可行的方法将文件从我的Android应用程序发送到另一个没有安装我的应用程序的Android设备。

选项1.通过分享意图: https://stackoverflow.com/a/16755810/1865583

 Intent sharingIntent = new Intent(Intent.ACTION_SEND);
 Uri screenshotUri = Uri.parse(picURI);

 sharingIntent.setType("image/*");
 sharingIntent.setPackage("com.android.bluetooth");
 sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
 startActivity(Intent.createChooser(sharingIntent, "Share image"));

有关选项1的问题: 如果我可以在意图参数中指定我想要发送此文件的设备,我会很高兴吗?我在网上搜索但是找不到这个选项。

我偶然发现了这种情况,但它只适用于人们声称的特定设备。 https://evilzone.org/java/%28android%29-three-ways-to-send-data-over-bluetooth/

ContentValues values = new ContentValues();
String address = device.getAddress();
values.put(BluetoothShare.URI, Uri.fromFile(new File("somefile.mp3")).toString());
values.put(BluetoothShare.DESTINATION, address);
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);
Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values);

是否有工作/测试方式指定蓝牙将尝试发送文件的设备? (如有必要,默认配对)?

选项2.使用蓝牙套接字控制文件传输:

我实际上对开发这个选项很感兴趣,但是在线的所有示例都是关于将文件从客户端发送到服务器,其中两个代码库都是由我开发的。

我需要的是通过蓝牙连接到其他Android蓝牙设备并启动文件传输?但我不确定如何启动此转移或使用哪些协议等?你如何连接到默认的蓝牙应用程序发送文件?

我发现了一些我认为用作起点https://stackoverflow.com/a/17237945/1865583

的信息

用户谈到使用00001106-0000-1000-8000-00805F9B34FB(文件传输服务)并启动RfcommSocket进行通信。这是与蓝牙Android应用程序进行文件传输通信的正确方法吗?

0 个答案:

没有答案