2014-11-04 157 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" />