欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

android 蓝牙搜索,android蓝牙,1.搜索蓝牙权限 xml

来源: javaer 分享于  点击 15413 次 点评:105

android 蓝牙搜索,android蓝牙,1.搜索蓝牙权限 xml


1.搜索蓝牙权限 xml<uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />2.MainActivity.java ```javapackage com.example.bluetooth;

import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;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.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;

public class MainActivity extends Activity {

private ListView tvBlueName;private Map<String, String> map;private List<Map<String,String>> list;private DeviceAdapter adapter;private BluetoothAdapter mBluetoothAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    tvBlueName = (ListView) findViewById(R.id.textView1);    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();    //获取已经绑定的蓝牙设备信息    Set<BluetoothDevice> devices = mBluetoothAdapter.getBondedDevices();    list = new ArrayList<Map<String,String>>();    if(devices.size() > 0){        for(BluetoothDevice bluetoothDevice : devices){            map = new HashMap<String, String>();            map.put("name", bluetoothDevice.getName());            map.put("address", bluetoothDevice.getAddress());            list.add(map);        }        adapter = new DeviceAdapter();        tvBlueName.setAdapter(adapter);    }    // 注册用以接收到已搜索到的蓝牙设备的receiver      IntentFilter mFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);      registerReceiver(mReceiver, mFilter);    // 注册搜索完时的receiver      mFilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);      registerReceiver(mReceiver, mFilter);    findViewById(R.id.button1).setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {            setProgressBarIndeterminateVisibility(true);              setTitle("正在扫描....");              // 如果正在搜索,就先取消搜索              if (mBluetoothAdapter.isDiscovering()) {                  mBluetoothAdapter.cancelDiscovery();              }              // 开始搜索蓝牙设备,搜索到的蓝牙设备通过广播返回              mBluetoothAdapter.startDiscovery();          }    });}private BroadcastReceiver mReceiver = new BroadcastReceiver() {    @Override      public void onReceive(Context context, Intent intent) {          String action = intent.getAction();          if(action.equals(BluetoothDevice.ACTION_FOUND)){            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);            //获取未绑定的蓝牙设备            if(device.getBondState() != BluetoothDevice.BOND_BONDED){                map = new HashMap<String, String>();                map.put("name", device.getName());                map.put("address", device.getAddress());                list.add(map);            }            adapter.notifyDataSetChanged();        }else if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) {              setProgressBarIndeterminateVisibility(false);              setTitle("搜索蓝牙设备");          }     }  };class DeviceAdapter extends BaseAdapter{    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int arg0) {        return list.get(arg0);    }    @Override    public long getItemId(int position) {        return 0;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        View v = getLayoutInflater().inflate(R.layout.item,null);        TextView tv1 = (TextView) v.findViewById(R.id.name);        TextView tv2 = (TextView) v.findViewById(R.id.address);        tv1.setText(list.get(position).get("name"));        tv2.setText(list.get(position).get("address"));        return v;    }}

}

3.activity_main.xmlxml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" >

<Button    android:id="@+id/button1"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_alignParentLeft="true"    android:layout_alignParentTop="true"    android:text="搜索" /><ListView    android:id="@+id/textView1"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_alignRight="@+id/button1"    android:layout_below="@+id/button1"    android:layout_marginTop="10dp" />

</RelativeLayout>```

相关栏目:

用户点评