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);
}
}
先學習一些編碼。 – AAnkit 2014-11-04 09:30:38
@Ankit y多數民衆贊成在什麼我想..這就是爲什麼我問這個.. – Akshay 2014-11-04 09:40:57
你不能只添加一切onCreate,首先學習基本知識。這個問題本身就會解決。 – AAnkit 2014-11-04 09:48:36