почему мой BLE-сканер не обнаружил ни одного устройства, хотя у меня есть запрос на определение местоположения? - PullRequest
1 голос
/ 23 апреля 2019

Я новичок здесь и сейчас, я пытаюсь настроить основное приложение сканера BLE, но приложение не обнаруживает мой модуль BLE (я использую основной код на странице разработки для Android).

Я попытался найти решение в Интернете и обнаружил, что проблема была в расположении.Однако даже после того, как я применил этот запрос, я все еще не могу найти свой модуль BLE

this is the location request 
@Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case PERMISSION_REQUEST_COARSE_LOCATION: {
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    scanLeDevice(true);
                } else {
                    // Alert the user that this application requires the location permission to perform the scan.
                }
            }
        }
    }

, и это мой код сканирования

    private void scanLeDevice(final boolean enable) {
        if (enable) {
            // Stops scanning after a pre-defined scan period.
            mHandler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    mScanning = false;
                    mBluetoothAdapter.stopLeScan(mLeScanCallback);
                    invalidateOptionsMenu();
                }
            }, SCAN_PERIOD);

            mScanning = true;
            mBluetoothAdapter.startLeScan(mLeScanCallback);
        } else {
            mScanning = false;
            mBluetoothAdapter.stopLeScan(mLeScanCallback);
        }
        invalidateOptionsMenu();
    }
    private BluetoothAdapter.LeScanCallback mLeScanCallback =
            new BluetoothAdapter.LeScanCallback() {

        @Override
        public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    mLeDeviceListAdapter.addDevice(device);
                    mLeDeviceListAdapter.notifyDataSetChanged();
                }
            });
        }
    };

1 Ответ

0 голосов
/ 28 апреля 2019

Вы также добавили разрешение в AndroidManifest.xml ?Это будет выглядеть как

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Тем временем вам нужно перейти к настройке в вашей ячейке где-то в Приложение .

Найдите свое собственное приложение для Android и укажите его местоположение.разрешение.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...