【问题标题】:tansfer data using bluetooth in android在android中使用蓝牙传输数据
【发布时间】:2013-04-15 14:07:54
【问题描述】:

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

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

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

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

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

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

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

但是我应该如何实现呢?

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

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

谢谢!!

【问题讨论】:

    标签: android bluetooth android-broadcast


    【解决方案1】:
    1. 如果你试图在两个安卓设备之间进行通信,那么示例 BluetoothChat 代码最好理解基本通信...帮助链接:::link1link2
    2. 区分发送的数据:: 在你的应用程序中,你可以为你的 msg 使用一个标头,在接收数据的另一端检查标头是否 tat msg 与你的应用程序有关

    示例:: 在接收到下面的 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) 的不可变表示。是的,您的应用程序确实需要它Extra details on UUID

    【讨论】:

    • 删除 boolean bool = false 和 bool = true 行。然后只返回真/假
    猜你喜欢
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2011-03-31
    • 2013-09-23
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多