Мое приложение не сохраняет соединение - как я могу это исправить? - PullRequest
0 голосов
/ 21 февраля 2019

У меня проблемы с приложением.Я использую техасское устройство с Bluetooth, и я создал простое приложение для включения / выключения светодиодов через Bluetooth.Если я включу сопряжение внутри приемника с приложениями Texas и BLE, они работают отлично, если я использую его с моим приложением, оно не сохранит сопряжение и не будет работать.Мое приложение работает, только если получатель не устанавливает соединение.Как включить сохранение в моем приложении?Это мой код, вы можете мне помочь?

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    activity = this;

    // Get UI elements
    mTableDevices = (TableLayout) findViewById(R.id.devicesFound);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

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

    //  For Android M: Check if app have location permission
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {
                // Show explanation on why this is needed
                final AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("This app needs location access");
                builder.setMessage("Please grant location access so this app can discover bluetooth devices");
                builder.setPositiveButton(android.R.string.ok, null);
                builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface dialog) {
                        // Prompt the user once explanation has been shown
                        ActivityCompat.requestPermissions(MainActivity.this,
                                new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                                MY_PERMISSIONS_REQUEST_ACCESS_COARSE);
                             }
                });
                builder.show();

            } else {
                // Prompt user for location access
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                        MY_PERMISSIONS_REQUEST_ACCESS_COARSE);
            }
        }
    }

    // Configure scan filter on device name, so the scan result
    // only displays devices with Project Zero running.
    ScanFilter filter = new ScanFilter.Builder()
            .setDeviceName("RCQ4-BLE")
            .build();
    mScanFilters.add(filter);

    // Configure default scan settings
    mScanSettings = new ScanSettings.Builder().build();

}
...