当前位置:   article > 正文

【Android】蓝牙连接,获取信号地址和强度_android bledevice 获取信号强度

android bledevice 获取信号强度

程序实现功能:开启、关闭、连接蓝牙,SCAN周围蓝牙并获得蓝牙名字,地址,信号强度RSSI,连接状态,因为当时是为了做一个蓝牙定位,所以按照需求还添加了一个是否是自己买的蓝牙基站的Textview。

当判断SCAN到的蓝牙里面有自己的蓝牙基站时,就再用一个ListView把它们的名字、地址、信号强度、距离和之前设定的坐标单独列出来。

程序实现效果图如下:

 

程序是参考了Github上一个程序,然后根据自己的需求修改的

程序如下:

MainActivity.java

 

  1. import android.app.AlertDialog;
  2. import android.bluetooth.BluetoothAdapter;
  3. import android.bluetooth.BluetoothDevice;
  4. import android.bluetooth.BluetoothSocket;
  5. import android.content.BroadcastReceiver;
  6. import android.content.Context;
  7. import android.content.Intent;
  8. import android.content.IntentFilter;
  9. import android.content.pm.PackageManager;
  10. import android.os.AsyncTask;
  11. import android.os.Handler;
  12. import android.os.Message;
  13. import android.support.annotation.NonNull;
  14. import android.support.v4.app.ActivityCompat;
  15. import android.support.v4.content.ContextCompat;
  16. import android.support.v7.app.AppCompatActivity;
  17. import android.os.Bundle;
  18. import android.util.Log;
  19. import android.view.View;
  20. import android.widget.AdapterView;
  21. import android.widget.CheckBox;
  22. import android.widget.CompoundButton;
  23. import android.widget.EditText;
  24. import android.widget.ListView;
  25. import android.widget.TextView;
  26. import android.widget.Toast;
  27. import android.widget.AdapterView.OnItemClickListener;
  28. import java.io.IOException;
  29. import java.lang.reflect.Method;
  30. import java.util.ArrayList;
  31. import java.text.DecimalFormat;
  32. public class MainActivity extends AppCompatActivity implements
  33. View.OnClickListener, OnItemClickListener, CompoundButton.OnCheckedChangeListener,
  34. BlueConnectTask.BlueConnectListener, InputDialogFragment.InputCallbacks, BlueAcceptTask.BlueAcceptListener {
  35. private static final String TAG = "MainActivity";
  36. String blueName;//声明用户输入的蓝牙设备名称变量
  37. private CheckBox ck_bluetooth;
  38. private TextView tv_discovery;
  39. private ListView lv_bluetooth;
  40. private ListView lv_zuobiao;
  41. private BluetoothAdapter mBluetooth;
  42. private ArrayList<BlueDevice> mDeviceList = new ArrayList<BlueDevice>();
  43. private ArrayList<BlueDevice> zDeviceList = new ArrayList<BlueDevice>();
  44. @Override
  45. protected void onCreate(Bundle savedInstanceState) {
  46. super.onCreate(savedInstanceState);
  47. setContentView(R.layout.activity_main);
  48. bluetoothPermissions();
  49. ck_bluetooth = (CheckBox) findViewById(R.id.ck_bluetooth);
  50. tv_discovery = (TextView) findViewById(R.id.tv_discovery);
  51. lv_bluetooth = (ListView) findViewById(R.id.lv_bluetooth);
  52. lv_zuobiao = (ListView) findViewById(R.id.lv_zuobiao);
  53. if (BluetoothUtil.getBlueToothStatus(this) == true) {
  54. ck_bluetooth.setChecked(true);
  55. }
  56. ck_bluetooth.setOnCheckedChangeListener(this);
  57. tv_discovery.setOnClickListener(this);
  58. mBluetooth = BluetoothAdapter.getDefaultAdapter();
  59. if (mBluetooth == null) {
  60. Toast.makeText(this, "本机未找到蓝牙功能", Toast.LENGTH_SHORT).show();
  61. finish();
  62. }
  63. }
  64. // 定义获取基于地理位置的动态权限
  65. private void bluetoothPermissions() {
  66. if (ContextCompat.checkSelfPermission(this, android.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/867750
推荐阅读
相关标签
  

闽ICP备14008679号