Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过蓝牙检测附近的另一个Android设备大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
好吧,我在这里一个奇怪的问题.我正在开发 Android游戏,我希望能够让Android手机检测到彼此的存在.

搜索其他玩家的设备将知道其他玩家设备的蓝牙mac地址(来自游戏DB),但是设备将不会配对,并且设备将不会处于可发现模式.此外,只有少数设备可能被发现 – 因此扫描mac地址并不是什么大问题.

我不需要连接到设备,我只需要能够回答一个简单的问题:这个设备附近有这个mac地址吗?

允许在另一个用户的屏幕上显示一个配对对话框…我不在乎他们选择的结果是什么……我只需要知道他们的设备是否在那里.

任何帮助将不胜感激!

解决方法

这个用例可能非常适合最近发布的Nearby API.请参阅附近的消息 developer overview

Nearby具有自己的运行时权限,可以使您无需添加BLUETOOTH_ADMIN或类似于清单.它可以通过多种技术(经典蓝牙,BLE,超声波)在iOS和Android上运行.可以选择仅使用超声波调制解调器,将范围缩小到约5英尺.

我在下面列出了一个部分示例,您可以在github找到更完整的示例

// Call this when the user clicks "find players" or similar
// In the ResultCallBACk you'll want to trigger the permission
// dialog
Nearby.messages.getPermissionStatus(client)
  .setResultCallBACk(new ResultCallBACk<Status>() {
    public void onResult(Status status) {
      // request Nearby runtime permission if missing
      // ... see github sample for details
      // If you already have the Nearby permission,// call publishAndSubscribe()
    }
  });

void publishAndSubscribe() {
  // You can put whatever you want in the message up to a modest
  // size limit (currently 100KB). smaller will be faster,though.
  message msg = "your device identifier/MAC/etc.".getBytes();
  Nearby.messages.publish(googleApiClient,msg)
      .setResultCallBACk(...);

  messageListener listener = new messageListener() {
    public void onFound(message msg) {
      Log.i(tag,"You found another device " + new String(msg));
    }
  });

  Nearby.messages.subscribe(googleApiClient,listener)
    .setResultCallBACk(...);
}

免责声明我在使用Nearby API

大佬总结

以上是大佬教程为你收集整理的通过蓝牙检测附近的另一个Android设备全部内容,希望文章能够帮你解决通过蓝牙检测附近的另一个Android设备所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。