0

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

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

现在,我想将此卡(相应的 JSON 字符串)发送给其他用户(他也通过蓝牙拥有我的应用程序)。

现在,我知道如何做一些简单的事情,例如,打开蓝牙,发现设备并将其展示给用户(用户可以从中选择他想要发送卡的设备)

现在,我该怎么做剩下的事情?那是:

1)实际发送json字符串?任何人都可以建议一个很好的教程,其中实际上某种数据是通过蓝牙传输的。

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

但是我应该如何实现呢?

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

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

谢谢!!

4

1 回答 1

0
  1. 如果您尝试在两个 android 设备之间进行通信,那么示例 BluetoothChat 代码最好了解基本通信 ...Helpul links::: link1 link2
  2. 区分发送的数据:: 在你的应用程序中你可以使用你的消息头,在接收数据的另一端检查头文件是否与你的应用程序有关

示例:: 在接收到 msg 检查标头时,如下所示

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;
  }
 }

在这里 userdefined1userdefined2可以是一些你用来区分你的味精的值,如果它返回true它理解的它你的应用程序味精,否则不是......

3.UUID 是 128 位通用唯一标识符 (UUID) 的不可变表示。是的,您的应用程序确实需要它UUID 的额外详细信息

于 2013-04-15T05:36:52.430 回答