有可能检测到并排放置的Android设备吗

有可能检测到并排放置的Android设备吗,android,proximity,Android,Proximity,我正在开发一个Android应用程序,它要求设备并排和/或上下放置 我知道我可以使用附近的API来检测“附近”的设备,但是我需要一些更细粒度的东西 我的应用程序需要能够识别位于左侧、上方、右侧或下方的设备。当所有设备都平放在桌子上时(例如) 我在网上找不到任何描述这个用例的东西 可能吗 更新 我的使用案例是,我希望Android设备能够检测到任何数量的“其他设备”,无论是在其左侧还是右侧。设备将水平布置,每个设备之间有一个“小”间隙 以同样的方式,您可以布局孩子们的字母块来拼写单词或短语,或者用

我正在开发一个Android应用程序,它要求设备并排和/或上下放置

我知道我可以使用附近的API来检测“附近”的设备,但是我需要一些更细粒度的东西

我的应用程序需要能够识别位于左侧、上方、右侧或下方的设备。当所有设备都平放在桌子上时(例如)

我在网上找不到任何描述这个用例的东西

可能吗

更新

我的使用案例是,我希望Android设备能够检测到任何数量的“其他设备”,无论是在其左侧还是右侧。设备将水平布置,每个设备之间有一个“小”间隙

以同样的方式,您可以布局孩子们的字母块来拼写单词或短语,或者用数字块来求和


设备线路不仅应能检测到其左右两侧的近邻,两端的两个设备还应能检测到它们是线路的起点和终点(从左到右读取)。

如果您只有两个设备,但如果您有任何信号的外部源(位置已知),则似乎没有(音频、振动、BT或WiFi无线电等),设备能够以足够的精度检测到,并且设备时间是同步的,您可以在两台设备上比较信号启动时间(或信号强度),如下图所示:

或者,如果您可以向其中一个设备添加一些传感器,则可以创建“其他设备定位器”,例如声音定位器

更新


在一个更新的公式中,这个问题也无法解决:可以确定哪两个设备在边缘,但你无法确定哪一个在左边,哪一个在右边。必须至少有一个设备知道它,例如,是最左边的,然后其他设备,例如,产生声音,等等遥感器接收到它并根据到达时间的差异确定它们的顺序。但定位点和时间同步是必要的。

使用接近传感器可能是解决您问题的一种方法。will给出了与附近物体的距离。给出了x/y/z上的地磁场强度


更多阅读。

一个想法,如果它与您的用例相关:

  • 设置阶段
    • 以“配对模式”在每个设备上启动应用程序
    • 每个设备将显示一个QR码,其中包含与设备通信所需的密钥(例如通过Firebase),以及屏幕详细信息:以像素为单位的大小。它还将在屏幕边界处绘制一个矩形
    • 此布局外部的另一部手机将以“主机”身份运行您的应用程序,从上方拍摄手机照片
    • 现在您需要编写一个算法来识别屏幕及其位置、方向,并提取二维码进行分析。这不容易,但可行
  • 相互作用阶段
    • 例如,现在所有的手机(应该可以在两部以上的手机上使用)都可以协同屏幕显示同一部电影的部分内容

我想是个办法,但可能需要一些工作。首先,通过获取设备方向并使用加速计或旋转矢量检查俯仰、滚动等,检查是否有两个设备正在铺设


当您确定他们正在使用BT或wifi从一台设备向另一台设备发送数据时。数据应包括发送时间。检查其他设备上的检索时间,您还应检查发送和检索数据的延迟。如果设备之间的距离差异较小,您可能会有以毫秒为单位的明显时间差,则会e很容易检查它们之间的距离有多近。此外,您也可以要求用户将设备彼此保持1米或固定距离,以获取您发送给其他人的BT或wifi信号的行程时间。

通过低估您的使用案例,可以使用附近的Api或其他技术找到主机设备周围的设备数量。但是我认为目前的移动硬件和技术不可能做到这一点。因为,考虑到所有因素,磁传感器只是最不可能的解决方案。但目前的移动设备没有这种能力

以下是我根据上述答案提出的观点。
TYPE\u加速计、TYPE\u线性加速度、TYPE\u磁场、TYPE\u方向
这些传感器会对设备周围的磁场做出反应(指南针会对磁铁做出反应)。您可以使用
TYPE\u磁场
尝试应用程序,测试它在靠近其他设备时会如何反应(我认为它会做出反应)

但我想说的是,如果你把三个装置放在一边,把四个装置放在另一边,磁场传感器会读取相对磁场。因此,除非你做了一些科学计算,否则我们无法确定每一边的装置是如何工作的

第二点是,有人建议使用
TYPE_approxity
传感器,但它并不用于此目的。当前的手机测量物体相对于设备视图屏幕的距离,单位为厘米。此传感器通常用于确定手机是否被举到人耳旁

另一个最小的可能性是使用位置传感器,它可以识别相对于设备坐标的坐标,您可以使用NFC在每个设备坐标之间与主机进行通信。但问题是,您的用例表明这些设备彼此非常接近,因此使用位置服务无法测量距离

综上所述,使用当前的移动硬件不可能确定主机设备每侧的每个设备的数量。可以使用扩展移动能力的外部传感器对其进行存档。例如,配备这种能力的手机壳