试图获得蓝牙适配器;无法解析方法'GetSystemService(java.lang.String)'

时间:2018-09-07 20:16:52

标签: java android bluetooth-lowenergy bluetoothlescanner bluetoothadapter

我正在关注Android Studio上的BluetoothLE文档:

https://developer.android.com/guide/topics/connectivity/bluetooth-le#setup

我的目标是设置蓝牙以便能够与我的Java应用程序一起使用。

为什么会出现“无法解析方法”错误,该如何解决? 另外,如果我只是将mBluetoothAdapter声明为变量名,为什么它是未知类呢?

package com.august.sensorclient;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothManager;
import android.content.Context;
import android.content.Intent;
import java.lang.String;

public class BLEScanner {

    private BluetoothAdapter mBluetoothAdapter;


    // Initializes Bluetooth adapter.
    final BluetoothManager bluetoothManager =
            (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
    mBluetoothAdapter = bluetoothManager.getAdapter();

    // Ensures Bluetooth is available on the device and it is enabled. If not,
    // displays a dialog requesting user permission to enable Bluetooth.
    if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }

}

enter image description here

已解决:我相信我的代码之所以没有得到错误的原因,是因为我没有尝试实际调用任何代码,因为我试图将此代码写入该类,而不是将其写入实际功能。

1 个答案:

答案 0 :(得分:0)

使用

编辑代码
 BluetoothManager bluetoothAdapter = (BluetoothManager) 
 mContext.getSystemService(Context.BLUETOOTH_SERVICE);

要获取mContext,必须将活动上下文传递给BLEScanner类。

或者您可以像这样直接编码

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();