令人困惑的Android SDK错误:静态引用非静态方法

时间:2013-08-26 06:41:19

标签: java android static bluetooth

有人可以帮助解释为什么在以下代码的第6行(包含在我正在ADT Eclipse IDE中工作的.java文件中)我得到了错误标记:

“无法从BluetoothAdapter类型中对非静态方法getRemoteDevice(String)进行静态引用”

import android.bluetooth.*;

public final class bluetooth{

    void initConnection(String address){
         BluetoothSocket sock = BluetoothAdapter.getRemoteDevice(address).createInsecureRfcommSocketToServiceRecord(00001101-0000-1000-8000-00805F9B34FB);
    }
}

上面的代码中有什么东西是静态的?为什么我没有为使用BluetoothDevice的createInsecureRfcommSocketToServiceRecord方法而犯同样的错误?

1 个答案:

答案 0 :(得分:2)

你不能在BluetoothAdapter类上调用getRemoteDevice(),它不是静态方法。你需要一个实例,如下所示:

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
BluetoothSocket sock = adapter.getRemoteDevice(address)
    .createInsecureRfcommSocketToServiceRecord(00001101-0000-1000-8000-00805F9B34FB);