首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoSuchMethod异常

NoSuchMethod异常
EN

Stack Overflow用户
提问于 2016-07-07 02:05:20
回答 2查看 1.9K关注 0票数 2

我使用的是BLE startLescan,但现在它已经过时了。现在,我已经更改了我的API level to 23 (from 20),并为此使用了BluetoothLeScanner。我的开始扫描功能是:

代码语言:javascript
复制
public void startScan(){
    mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();

     mBluetoothLeScanner.startScan(new ScanCallback() {
            @Override
            public void onScanResult(int callbackType, ScanResult result) {
                super.onScanResult(callbackType, result);

                String s = "\nRssi : "+result.getRssi()+"" +
                        "\nName (Get Device) : "+result.getDevice().getName()+"" +
                        "\nBytes"+result.getScanRecord().getBytes()+"" +
                        "\nGet Device : " + result.getDevice()+"" +
                        "\nAddress : "+result.getDevice().getAddress()+"" +
                        "\nService UUIds : "+result.getScanRecord().getServiceUuids().get(0)+"" +       //Unique
                        "\nName (Scan Record) : "+result.getScanRecord().getDeviceName()+"" +
                        "\nUuids device : "+result.getDevice().getUuids()+"" +
                        "\nDescribe contents : "+result.describeContents();

                //This will show you all the data in logs.
                Log.e("All Data",s);



            }

            @Override
            public void onBatchScanResults(List<ScanResult> results) {
                super.onBatchScanResults(results);
            }

            @Override
            public void onScanFailed(int errorCode) {
                super.onScanFailed(errorCode);
            }
        });

当我到达第一行时,

java抛出一个nosuchmethod异常: 方法查找失败的选择器"getBluetoothLeScanner“与签名”()Landroid/蓝牙/le/蓝牙刷扫描仪;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-12 10:01:39

如果您的设备有API版本20或更低,它将无法使用新的API。因此,您需要实现两种扫描方法,并根据设备os版本检查应该使用哪个版本。(Kitkat不支持新的扫描API!)

票数 0
EN

Stack Overflow用户

发布于 2016-07-07 02:15:26

在这种情况下,需要一个BluetoothAdapter实例。做这样的事:

代码语言:javascript
复制
Context mContext = getBaseContext();
BluetoothAdapter mBluetoothAdapter = (BluetoothManager) mContext.getSystemService(Context.BLUETOOTH_SERVICE).getAdapter();
BluetoothLeScanner mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();

mBluetoothLeScanner.startScan(new ScanCallback() {….

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38236593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档