Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法扫描信标_Android_Beacon_Android Ibeacon - Fatal编程技术网

Android 无法扫描信标

Android 无法扫描信标,android,beacon,android-ibeacon,Android,Beacon,Android Ibeacon,我一直在尝试扫描信标,但我不能。我试了所有的问题,但都没有找到答案 下面是我的代码: main活动: public class MainActivity extends AppCompatActivity implements BeaconConsumer { protected static final String TAG = "MonitoringActivity"; private BeaconManager beaconManager; @Override protected vo

我一直在尝试扫描信标,但我不能。我试了所有的问题,但都没有找到答案

下面是我的代码:

main活动:

public class MainActivity extends AppCompatActivity implements BeaconConsumer {

protected static final String TAG = "MonitoringActivity";
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
public void onBeaconServiceConnect() {
    beaconManager.addMonitorNotifier(new MonitorNotifier() {
        @Override
        public void didEnterRegion(Region region) {
            Log.i(TAG, "I just saw an beacon for the first time!");
        }

        @Override
        public void didExitRegion(Region region) {
            Log.i(TAG, "I no longer see an beacon");
        }

        @Override
        public void didDetermineStateForRegion(int state, Region region) {
            Log.i(TAG, "I have just switched from seeing/not seeing beacons: "+state);
        }
    });

    try {
        beaconManager.startMonitoringBeaconsInRegion(new Region("myMonitoringUniqueId", Identifier.parse(null, null, null));
    } catch (RemoteException e) {    }
}
清单

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
logcat

06-19 20:03:37.403 7459-7459/com.example.beaconscanner D/BeaconParser: Parsing beacon layout: m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25

06-19 20:03:37.796 7459-7459/com.example.beaconscanner I/MonitoringActivity: I have just switched from seeing/not seeing beacons: 0

06-19 20:03:37.933 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON
06-19 20:03:37.938 7459-7471/com.example.beaconscanner D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=12

06-19 20:03:39.038 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON
06-19 20:03:39.040 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON
06-19 20:03:39.044 7459-7470/com.example.beaconscanner D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=12

根据Android SDK大于23,我添加了位置和蓝牙的权限。从您的调试行中可以看出,Android正在检测蓝牙设备,这表明蓝牙已打开,并且您的应用程序具有扫描权限

需要检查的几件事:

  • 确保你的信标布局正确。“m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25”表示备降信标。如果您的信标正在传输不同的格式(例如iBeacon或Eddystone),您将需要不同的布局。这里有一个很好的参考:

  • 确保您的设备确实发出了有效的信标信号。我建议使用我的,因为它会自动检测所有宣传iBeacon、AltBeacon和Eddystone格式的信标


  • 从您的调试线路上可以看出,Android正在检测蓝牙设备,这表明蓝牙已打开,并且您的应用程序具有扫描权限

    需要检查的几件事:

  • 确保你的信标布局正确。“m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25”表示备降信标。如果您的信标正在传输不同的格式(例如iBeacon或Eddystone),您将需要不同的布局。这里有一个很好的参考:

  • 确保您的设备确实发出了有效的信标信号。我建议使用我的,因为它会自动检测所有宣传iBeacon、AltBeacon和Eddystone格式的信标


  • 它起作用解决方案将信标布局更改为
    m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24
    它起作用解决方案将信标布局更改为
    m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24
    06-19 20:03:37.403 7459-7459/com.example.beaconscanner D/BeaconParser: Parsing beacon layout: m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25
    
    06-19 20:03:37.796 7459-7459/com.example.beaconscanner I/MonitoringActivity: I have just switched from seeing/not seeing beacons: 0
    
    06-19 20:03:37.933 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON
    06-19 20:03:37.938 7459-7471/com.example.beaconscanner D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=12
    
    06-19 20:03:39.038 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON
    06-19 20:03:39.040 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON
    06-19 20:03:39.044 7459-7470/com.example.beaconscanner D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=12