- Java code
package com.PDATest.bluetooth;import java.util.Iterator;import java.util.Set;import android.app.Activity;import android.bluetooth.BluetoothAdapter;import android.bluetooth.BluetoothDevice;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends Activity { private Button BtnSerch; private TextView ShowAddress; private ListView ListShow; private ArrayAdapter<String> mArrayAdapter; private BroadcastReceiver bluetoothReceiver = null; private BluetoothAdapter adapter = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BtnSerch = (Button)findViewById(R.id.Search); BtnSerch.setOnClickListener(new BtnSearchClicked()); ShowAddress = (TextView)findViewById(R.id.Show); ListShow = (ListView)findViewById(R.id.ListShow); adapter = BluetoothAdapter.getDefaultAdapter(); bluetoothReceiver = new MyBroadcastReceiver(); IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); registerReceiver(bluetoothReceiver,filter); // ListShow.setAdapter(mArrayAdapter); } private class BtnSearchClicked implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub if(adapter == null){ ShowAddress.setText("没有蓝牙设备"); } else{ ShowAddress.setText("本机拥有蓝牙设备"); if(adapter.isEnabled()){ adapter.startDiscovery(); } else { Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivity(intent); } } } } private class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub final String action = intent.getAction(); if(BluetoothDevice.ACTION_FOUND.equals(action)){ final BluetoothDevice bluetoothDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); mArrayAdapter.add(bluetoothDevice.getName() + "\n" + bluetoothDevice.getAddress()); } } }}
代码如上,每次程序走到adapter.startDiscovery()这一句的时候老是出错,没找出什么原因!!!
------解决方案--------------------
<uses-permission android:name= "android.permission.BLUETOOTH_ADMIN " />
<uses-permission android:name= "android.permission.BLUETOOTH " />
在AndroidManifest.xml中加入如上句话。
------解决方案--------------------
------解决方案--------------------
Need BLUETOOTH_ADMIN permission: Neither user 10124 nor current process has android.permission
哥,log信息里面不是有提示么