赞
踩
程序实现功能:开启、关闭、连接蓝牙,SCAN周围蓝牙并获得蓝牙名字,地址,信号强度RSSI,连接状态,因为当时是为了做一个蓝牙定位,所以按照需求还添加了一个是否是自己买的蓝牙基站的Textview。
当判断SCAN到的蓝牙里面有自己的蓝牙基站时,就再用一个ListView把它们的名字、地址、信号强度、距离和之前设定的坐标单独列出来。
程序实现效果图如下:
程序是参考了Github上一个程序,然后根据自己的需求修改的
程序如下:
MainActivity.java
- import android.app.AlertDialog;
- import android.bluetooth.BluetoothAdapter;
- import android.bluetooth.BluetoothDevice;
- import android.bluetooth.BluetoothSocket;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.content.pm.PackageManager;
- import android.os.AsyncTask;
- import android.os.Handler;
- import android.os.Message;
- import android.support.annotation.NonNull;
- import android.support.v4.app.ActivityCompat;
- import android.support.v4.content.ContextCompat;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.CheckBox;
- import android.widget.CompoundButton;
- import android.widget.EditText;
- import android.widget.ListView;
- import android.widget.TextView;
- import android.widget.Toast;
- import android.widget.AdapterView.OnItemClickListener;
-
- import java.io.IOException;
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.text.DecimalFormat;
-
- public class MainActivity extends AppCompatActivity implements
- View.OnClickListener, OnItemClickListener, CompoundButton.OnCheckedChangeListener,
- BlueConnectTask.BlueConnectListener, InputDialogFragment.InputCallbacks, BlueAcceptTask.BlueAcceptListener {
- private static final String TAG = "MainActivity";
- String blueName;//声明用户输入的蓝牙设备名称变量
- private CheckBox ck_bluetooth;
- private TextView tv_discovery;
- private ListView lv_bluetooth;
- private ListView lv_zuobiao;
-
- private BluetoothAdapter mBluetooth;
- private ArrayList<BlueDevice> mDeviceList = new ArrayList<BlueDevice>();
- private ArrayList<BlueDevice> zDeviceList = new ArrayList<BlueDevice>();
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- bluetoothPermissions();
- ck_bluetooth = (CheckBox) findViewById(R.id.ck_bluetooth);
- tv_discovery = (TextView) findViewById(R.id.tv_discovery);
- lv_bluetooth = (ListView) findViewById(R.id.lv_bluetooth);
- lv_zuobiao = (ListView) findViewById(R.id.lv_zuobiao);
- if (BluetoothUtil.getBlueToothStatus(this) == true) {
- ck_bluetooth.setChecked(true);
- }
- ck_bluetooth.setOnCheckedChangeListener(this);
- tv_discovery.setOnClickListener(this);
- mBluetooth = BluetoothAdapter.getDefaultAdapter();
- if (mBluetooth == null) {
- Toast.makeText(this, "本机未找到蓝牙功能", Toast.LENGTH_SHORT).show();
- finish();
- }
-
- }
-
- // 定义获取基于地理位置的动态权限
- private void bluetoothPermissions() {
- if (ContextCompat.checkSelfPermission(this, android.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。