Android设置API打开蓝牙以提高位置准确性?

时间:2015-08-17 10:17:13

标签: android bluetooth gps geolocation

我使用新的设置API打开GPS而不离开我的应用程序。 我的LocationRequest看起来像这样:

LocationRequest mLocationRequest = new LocationRequest(); mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

一切正常但是对话框提示我也启用蓝牙(连同GPS)有没有办法只启用GPS?

2 个答案:

答案 0 :(得分:1)

我怀疑您在LocationSettingsRequest中错误地请求BLE支持。

LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()      .addLocationRequest(mLocationRequestHighAccuracy)      .addLocationRequest(mLocationRequestBalancedPowerAccuracy);

  

builder.setNeedBle(真);

如果客户端使用BLE扫描来派生位置,它可以通过调用setNeedBle(boolean)请求启用BLE:

如果你不想要BLE,那么将其设置为false 或删除此行。

答案 1 :(得分:0)

我在这里发现了同样的问题。我必须首先在意图中打开蓝牙,然后从回调请求位置来找到它。

private boolean isBluetoothEnabled() {
    if (mBluetoothAdapter != null && !mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        int REQUEST_ENABLE_BT = 1;
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
        return false;
    }
    return true;
}