在不同设备上扫描信标时应用程序的不同反应

时间:2019-09-27 21:06:48

标签: android kotlin bluetooth-lowenergy beacon altbeacon

我有一个应用程序可以扫描BLE信标。我已经使用Altbeacon库来做到这一点。当我在Nexus 6p上运行它时,它会找到一些信标,但是当我在galaxy s9或Kindle fire HD 8上运行它时,发现的信标数始终为零。这是我的代码:

override fun onBeaconServiceConnect() {
    beaconManager.removeAllRangeNotifiers()
    beaconManager.addRangeNotifier(object : RangeNotifier {
        override fun didRangeBeaconsInRegion(beacons: Collection<Beacon>, region: Region) {
            Log.i("ranging" , "beacons size:" + beacons.size)

            for (b in beacons) {
                Toast.makeText(getApplicationContext(),b.id1.toString() + " beacon I see is about " + b.rssi + " away.",
                    Toast.LENGTH_SHORT).show();
            }
        }

    })

    try {
        beaconManager.startRangingBeaconsInRegion(Region("myRangingUniqueId", Identifier.parse(""), null, null))
    } catch (e: RemoteException) {
    }
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val binding : com.example.attendancecheck_v1.databinding.FragmentTeacherScanningBinding = DataBindingUtil.inflate(
        inflater, R.layout.fragment_teacher_scanning, container, false)


    beaconManager.bind(this)

    setHasOptionsMenu(true)

    return binding.root
}

通过在我的设备上安装信标模拟器的方式,它可以扫描信标,但是在我的代码中,这些设备上的输出为零

1 个答案:

答案 0 :(得分:0)

在此区域进行检查:

beaconManager.startRangingBeaconsInRegion(Region("myRangingUniqueId", null, null, null))