gpt4 book ai didi

Android BTLE -> 找不到回调包装器

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:58:30 25 4
gpt4 key购买 nike

我在我的应用程序中使用 Android Beacon Library,我逐字逐句地复制了他们的测距示例,但我不断收到代码下方的错误。任何帮助将不胜感激,我刚刚进入 BTLE/beacons

package com.example.josh.beacons;

import android.os.Bundle;
import android.os.RemoteException;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import org.altbeacon.beacon.Beacon;
import org.altbeacon.beacon.BeaconConsumer;
import org.altbeacon.beacon.BeaconManager;
import org.altbeacon.beacon.BeaconParser;
import org.altbeacon.beacon.RangeNotifier;
import org.altbeacon.beacon.Region;

import java.util.Collection;

public class MainActivity extends AppCompatActivity implements BeaconConsumer {
protected static final String TAG = "RangingActivity";
private BeaconManager beaconManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
beaconManager.bind(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
beaconManager.unbind(this);
}
@Override
public void onBeaconServiceConnect() {
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
if (beacons.size() > 0) {
Log.i(TAG, "The first beacon I see is about " + beacons.iterator().next().getDistance() + " meters away.");
}
}
});

try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}
}

我得到的错误:

05-12 20:21:44.769 25775-25775/com.example.josh.beacons D/BluetoothAdapter: STATE_ON
05-12 20:21:44.770 25775-25775/com.example.josh.beacons D/BluetoothLeScanner: could not find callback wrapper
05-12 20:21:44.787 25775-26783/com.example.josh.beacons D/RangingActivity: didRangeBeacons 0

最佳答案

虽然您可以像异常(exception)答案所说的那样安全地忽略此消息,但它会告诉您一些事情。它很可能告诉您您的设备已关闭您的应用程序的位置权限,这会阻止您的信标扫描工作。如果该应用程序具有适当的权限并且正在正确扫描,您会看到更像

D/BluetoothAdapter: STATE_ON
D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=5

如果您的目标是 API 级别 23+,即使您的 minsdk 设置得较低(例如 16),您肯定希望检查您的代码以启用位置权限。

我为此浪费了很多时间才意识到它只是由于应用程序的位置服务被关闭而无声地失败了。

关于Android BTLE -> 找不到回调包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37199450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com