2014-11-04 2 views
0

Я разрабатываю приложение, которое сканирует устройства Bluetooth и перечисляет их все. Мое требование состоит в том, что я должен отсканировать устройства, как только начнется приложение. Теперь моя проблема заключается в том, что я запускаю приложение в первый раз, когда он только включает Bluetooth, но не сканирует устройства. Я вижу bluetooth значок на экране, но в режиме cat cat getState() для BluetoothAdapter отображается состояние STATE_OFF. Пожалуйста, помогите мне в этом вопросе ??Не удалось сканировать устройства Bluetooth

Вот мой фрагмент кода

public class MainActivity extends Activity { 

private BluetoothAdapter bluetoothAdapter; 
Set<String> BTList; 
ArrayAdapter<String> BTAdapter; 
private ListView listView; 
private BroadcastReceiver mReceiver; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_activity); 
    listView = (ListView) findViewById(R.id.listView1); 

    bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 

    if (bluetoothAdapter == null) 
     Toast.makeText(this, "Devices does not support Bluetooth", 
       Toast.LENGTH_SHORT).show(); 

    if (!bluetoothAdapter.isEnabled()) 
     bluetoothAdapter.enable(); 

    if(bluetoothAdapter.isEnabled()) { 
     if(bluetoothAdapter.isDiscovering()) { 
      bluetoothAdapter.cancelDiscovery(); 
     } 
    } 

    bluetoothAdapter.startDiscovery(); 

    mReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      String action = intent.getAction(); 
      if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
       BluetoothDevice device = intent 
         .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
       BTAdapter.add(device.getName() + "\n" + device.getAddress()); 
       BTAdapter.notifyDataSetChanged(); 

      } 
     } 
    }; 


    IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); 
    registerReceiver(mReceiver, filter); 

    BTAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_expandable_list_item_1); 
    listView.setAdapter(BTAdapter);  
} 



@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    //if(bluetoothAdapter != null) 
    // bluetoothAdapter.cancelDiscovery(); 
unregisterReceiver(mReceiver); 
} 

}

+0

узнать некоторые кодирования первого. – AAnkit

+0

@Ankit yup thats то, что я пытаюсь..и вот почему я спросил это .. – Akshay

+0

вы не можете просто добавить все в onCreate, сначала изучить основы. Тогда эта проблема будет решена. – AAnkit

ответ

0

Проверьте в файле AndroidManifest.xml, если у вас есть эти ниже записей

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
<uses-permission android:name="android.permission.BLUETOOTH" /> 
Смежные вопросы