当前位置: 代码迷 >> Android >> 一段简略的蓝牙扫描代码,老是出错,不知道什么原因
  详细解决方案

一段简略的蓝牙扫描代码,老是出错,不知道什么原因

热度:30   发布时间:2016-05-01 13:33:49.0
一段简单的蓝牙扫描代码,老是出错,不知道什么原因!
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中加入如上句话。
------解决方案--------------------
探讨
<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信息里面不是有提示么
  相关解决方案