2014-11-04 155 views
0

我正在開發掃描藍牙設備並將其全部列出的應用程序。我的要求是,我必須儘快掃描設備應用程序開始..現在我的問題是,當我第一次運行應用程序,它只打開藍牙,但不掃描設備.. 我可以看到藍牙屏幕上的圖標,但藍牙適配器的日誌貓getState()方法顯示狀態爲STATE_OFF。 請有人幫我解決這個問題嗎?無法掃描藍牙設備

這裏是我的代碼片段

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 2014-11-04 09:30:38

+0

@Ankit y多數民衆贊成在什麼我想..這就是爲什麼我問這個.. – Akshay 2014-11-04 09:40:57

+0

你不能只添加一切onCreate,首先學習基本知識。這個問題本身就會解決。 – AAnkit 2014-11-04 09:48:36

回答

0

檢查您AndroidManifest.xml文件,如果你有以下這些條目

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