如何通过蓝牙将文件从Android发送到电脑

2024-04-06

任何人都可以给出蓝牙服务器客户端的工作示例(从Android到计算机)?

我想将数据从 Android 手机传输到 C# 应用程序。现在我使用下面的 Android 代码,效果很好,但它仍然无法将数据传输到我的计算机(可能无法写入这些数据)。

任何人都可以建议一些应该成功地将消息或文件从客户端 Android 传输到服务器 PC 的代码吗?

Button btnSend = null;
TextView txtPath = null;
Socket s = null;
BluetoothAdapter objBluetoothAdapter = null;
BluetoothDevice device = null;
BluetoothSocket socket = null;
String strPath = "/sdcard/bluetooth/IMG0245A.jpg";
byte [] buffer = null;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

btnSend = (Button)findViewById(R.id.send_button);
btnSend.setOnClickListener(this);
}
   @Override public void onClick(View arg0) {
    // TODO Auto-generated method stub

    String address="MY_COMPUTER_BLUETOOTH_ADDRESS";

    objBluetoothAdapter =  BluetoothAdapter.getDefaultAdapter();
    if(objBluetoothAdapter==null){
            Toast.makeText(this, "BT not supported", Toast.LENGTH_LONG);
            return;
    }

    //objBluetoothAdapter.enable();

    if(!objBluetoothAdapter.isEnabled()){
            Intent enableBT = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivity(enableBT);
    }
    try{
            device = objBluetoothAdapter.getRemoteDevice(address);

            final UUID uuid= UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

            try{
                    File f = new File(strPath);
                    buffer = new byte[(int)f.length()];
                    FileInputStream fis = new FileInputStream(f);
                    BufferedInputStream bis = new BufferedInputStream(fis);
                    bis.read(buffer,0,(int)f.length());

                    socket = device.createRfcommSocketToServiceRecord(uuid);
                    Log.d("BT","RF Connection Created"+socket);
                    //objBluetoothAdapter.startDiscovery();
                    for(int i=0;i<3;i++){
                            try{

                                    objBluetoothAdapter.cancelDiscovery();
                                    socket.connect();
                                    Log.d("BT","Socket Connected = "+socket);

                                    break;
                            }catch (Exception e) {
                                    // TODO: handle exception
                                    Log.d("BT","Socket Connection exception = "+e);
                            }
                    }
            }catch (Exception e) {
                    // TODO: handle exception
                    e.printStackTrace();
                    Log.d("BT","Connection NOT OK");
            }

            OutputStream os = socket.getOutputStream();
            os.write(buffer);//,0,buffer.length);
            os.flush();
            os.close();
            socket.close();

    } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Toast.makeText(this,"exception "+e, Toast.LENGTH_LONG);

这是我的一些 C# 代码。我使用 32feet 库

ObexListenerContext olContexet = obxlistener.GetContext();
ObexListenerRequest olRequest = olContexet.Request;
String[] pathSplits = olRequest.RawUrl.Split('/');
String filename = pathSplits[pathSplits.Length - 1];
olRequest.WriteFile(Path.GetFullPath(Application.StartupPath) + "\\" + filename);

当我从 android 的蓝牙发送文件时,此代码运行良好,但是当我尝试从 android 代码发送文件时,obxlistener.GetContext() 返回 null 值!

谢谢你的帮助


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过蓝牙将文件从Android发送到电脑 的相关文章

随机推荐

  • watchOS 3 SpriteKit 中的触摸事件?

    在watchOS 3中使用SpriteKit时 如何处理触摸事件 我正在从 iOS 移植 SpriteKit 游戏 下面的代码不起作用 或者你必须以某种方式控制 WKInterfaceController override func tou
  • Apache 上 Django 应用程序的 POST/GET 请求日志

    Django 开发服务器非常好 它实时显示所有 POST GET 请求以及其他事件的日志 来自 Django 开发服务器的日志示例 04 Jul 2012 19 23 27 GET static images sprites submit
  • 根据所选单选按钮显示控件

    我有一组三个单选按钮 根据选择的单选按钮 我想显示三个控件之一 文本框 下拉列表或按钮 如何根据所选单选按钮的结果显示控件 您可以使用以下方法将控件的可见性绑定到 RadioButton 的 IsChecked 属性 BooleanToVi
  • 如何在 Android 中暂停和恢复录音

    我正在使用 MediaRecorder 类开发音频录制应用程序 我有以下要求 1 按下暂停按钮则暂停录音 2 按下恢复按钮后 从暂停处恢复录制 我试试这个link https stackoverflow com questions 5743
  • 使累计总和更快

    我正在尝试计算矩阵每一列的累积和 这是我的 R 代码 testMatrix matrix 1 65536 ncol 256 microbenchmark apply testMatrix 2 cumsum times 100L Unit m
  • C++ for every in 自定义集合

    所以自从它推出以来我就一直很喜欢for each在要迭代的关键字中STL collections 我是语法糖的超级粉丝 我的问题是如何编写可以使用这些关键字迭代的自定义集合 本质上 我需要公开什么 APi 才能使用这些关键字来迭代我的集合
  • 设置分层绘图的大小?

    我正在为我的应用程序制作一个图标 该应用程序基本上是一个朋友查找器 我正在创建一个看起来很像谷歌纬度图标的叠加层 我有一个因用户而变化的图像 并且我有边框 我已经能够很好地进行分层绘制和叠加 但问题是 图像拉伸到边框的大小 这是一个问题 因
  • 当应用程序进入后台时如何停止运行?

    我正在尝试建立一个可运行的程序 它可以每 5 秒间隔加载一次广告 当然 5 秒太快了 这只是为了测试目的 这是我的代码 package com admobsdk dfp handler import com google ads impor
  • 正则表达式从路径中删除文件名

    如何设计一个 RegEx 脚本来从路径中删除文件名 诀窍在于 道路上有各种各样的扳手需要投入工作 路径可以包括 1 Folder1 Folder2 Folder3 1234 folder4 5678 ApplesandOranges txt
  • 构造函数不能是虚拟的

    在其中之一互联网上的 C 教程 http www bogotobogo com cplusplus constructor php 我发现了下面关于为什么构造函数不能是虚拟的描述 我们不能声明虚拟构造函数 我们应该指定准确的 编译时对象的类
  • Leaflet R 大地图的性能问题

    我想知道是否有其他人在使用 R 中的传单包绘制大量标记和多边形时遇到类似的问题 这通常应该是这样的 但是 当我放大 缩小地图时 多边形和标记显然不合适 或者您可以说底图没有正确调整 下面包含一个示例 当我绘制较小的区域或几个标记时 我不会遇
  • Typescript 事件监听器 - 类型到 props 映射

    export enum GameEventType EVENT ONE event one EVENT TWO event two EVENT THREE event three export type GameEvent type Gam
  • 如何通过另一个 DLL 访问一个 DLL 中的命名空间?

    我有多个 DLL 我自己管理或我自己不管理 我想将它们包含在 CoreLib dll 中 这样我就不必在每个使用这些 DLL 的应用程序中包含 可能 数百个 DLL 我通过直接引用 DLL 来包含 DLL 因此 我还想在我正在创建的应用程序
  • 局部变量初始化应该是强制的吗?

    未初始化的本地变量 特别是指针 引起的维护问题对于 任何做过一些 c c 维护或增强的人来说都是显而易见的 但我仍然看到它们 并且偶尔会听到作为其理由的性能影响 在 c 中很容易证明冗余初始化已被优化 less test c include
  • 刷新 Visual Studio Code 文件列表

    Visual Studio Code 版本 0 10 11 在 OSX 上 不会刷新文件夹中的文件 有什么办法可以强制刷新吗 目前我必须关闭并重新打开整个程序 编辑 与此同时 重新加载按钮已添加到文件资源管理器小部件中 Use the wo
  • Spring/JPA/JSF 的异常处理策略

    我们在我们的应用程序中使用 JSF Spring 和 JPA 我们正在尝试简化项目的异常处理策略 我们的应用程序架构如下 UI JSF gt 托管 Bean gt 服务 gt DAO 我们正在为 DAO 层使用异常翻译 bean 后处理器
  • VSCode 运行 Python 2 而不是 3

    我在 VSCode 中使用 Python 如果我使用 Cmd Shift P 并输入 Run Code 它会使用 Python2 运行代码 即使我已指定它使用 Python3 我已阅读本教程 如何强制 VSCode 使用 Python 3
  • 相当于Java 8日期和时间API中的jodatime间隔[重复]

    这个问题在这里已经有答案了 Java 8 处理时间的方式似乎已经改进了很多 以至于我开始考虑替换jodatime http www joda org joda time 在某些情况下 但我缺少的是相当于Interval http www j
  • 计算第一个数字相似的所有元组值的平均值

    考虑元组列表 7751 0 9407466053962708 6631 0 03942129 7751 0 1235432 如何以Python方式计算所有元组值的平均值 其中第一个数字相似 例如答案必须是 7751 0 5321449026
  • 如何通过蓝牙将文件从Android发送到电脑

    任何人都可以给出蓝牙服务器客户端的工作示例 从Android到计算机 我想将数据从 Android 手机传输到 C 应用程序 现在我使用下面的 Android 代码 效果很好 但它仍然无法将数据传输到我的计算机 可能无法写入这些数据 任何人