android中使用蓝牙传输数据

android中使用蓝牙传输数据,android,bluetooth,android-broadcast,Android,Bluetooth,Android Broadcast,有谁能指导我在我的应用程序中实现以下功能吗?我是Android开发新手,想尝试蓝牙 我有一个创建商务卡或个人卡的应用程序(包含所有信息) 并将它们作为Json字符串存储在数据库中 现在,我想把这张卡(对应的JSON字符串)发送给其他用户(他们也通过蓝牙拥有我的应用程序) 现在,我知道了如何做一些简单的事情,例如,打开/关闭蓝牙,发现设备并向用户显示(用户可以从中选择要发送卡的设备) 现在,我该怎么做剩下的事情呢? 即: 1) 实际上发送json字符串吗? 有谁能推荐一个好的教程,在那里,一些数据

有谁能指导我在我的应用程序中实现以下功能吗?我是Android开发新手,想尝试蓝牙

我有一个创建商务卡或个人卡的应用程序(包含所有信息) 并将它们作为Json字符串存储在数据库中

现在,我想把这张卡(对应的JSON字符串)发送给其他用户(他们也通过蓝牙拥有我的应用程序)

现在,我知道了如何做一些简单的事情,例如,打开/关闭蓝牙,发现设备并向用户显示(用户可以从中选择要发送卡的设备)

现在,我该怎么做剩下的事情呢? 即:

1) 实际上发送json字符串吗? 有谁能推荐一个好的教程,在那里,一些数据实际上是通过 蓝牙

2) 现在,当数据传输到用户的手机时,应该由我的应用程序来处理。也就是说,将要接收的字符串应该存储在应用程序的数据库中。但是,我的应用程序如何知道通过蓝牙接收的数据与应用程序有关。(我的意思是,任何其他应用程序的任何类型的数据都可以通过蓝牙传输,但是我的应用程序如何知道已经收到了来自我的应用程序的字符串(卡)。我认为它与bradCast意图或广播接收器有关

但我应该如何实现这一点

如果接收方的应用程序没有运行,并且向其发送了一张卡,该怎么办? 我的应用程序应该如何反应并将卡存储在应用程序的数据库中

3) 什么是UUID?我的申请需要它吗

谢谢

  • 如果您试图在两台android设备之间进行通信,那么BluetoothChat示例代码最有助于理解基本的通信…帮助链接:
  • 要区分发送的数据,请执行以下操作: 在你的应用程序中,你可以为你的消息使用一个报头,在接收数据的另一端,检查报头tat消息是否与你的应用程序有关
  • 示例::在接收消息时检查标头,如下所示

    public static boolean isValidHeader(EnhancedByteBuffer paramEnhancedByteBuffer)
    {
     boolean bool = false;
      while (true)
      {
    
      paramEnhancedByteBuffer.order(ByteOrder.LITTLE_ENDIAN);
      int i = paramEnhancedByteBuffer.position();
      long l = paramEnhancedByteBuffer.getUint32();
      int k = paramEnhancedByteBuffer.getUint16();
      paramEnhancedByteBuffer.position(i);
      if ((l == userdefined1) && (k =userdefined2 )
        bool = true;
           return bool;
      }
     }
    
    这里的
    userdefined1
    userdefined2
    可以是您用来区分您的消息的一些值, 如果它返回
    true
    其已理解的值,则返回其ur应用程序消息else not


    UUID是128位通用唯一标识符(UUID)的不可变表示形式。是的,您的应用程序确实需要它

    删除布尔bool=false和bool=true行。然后返回true/false