一、权限和build.gradle配置并开启蓝牙(安卓蓝牙ble教程)

您所在的位置:网站首页 开启蓝牙权限 一、权限和build.gradle配置并开启蓝牙(安卓蓝牙ble教程)

一、权限和build.gradle配置并开启蓝牙(安卓蓝牙ble教程)

2024-07-14 04:29| 来源: 网络整理| 查看: 265

1、AndroidManifest.xml配置

有4个基本权限需要配置,分别是:

 具体的AndroidManifest.xml配置文件如下:

 

除此之外,还需要动态申请 ACCESS_COARSE_LOCATION 定位权限

1、MainActivity.java

注:如果复制代码进项目时显示红色,请按ALT+ENTER键导包(import class)

package club.stm32; import android.Manifest; import android.bluetooth.BluetoothAdapter; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private BluetoothAdapter bluetoothAdapter; private Button btnCheckPermission; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getPermission(); //获取权限 bluetoothInit(); //蓝牙初始化 widgetInit(); //控件初始化 widgetListener(); //控件监听 } //获取权限 private void getPermission() { //如果sdk版本大于23 if (Build.VERSION.SDK_INT >=23){ //如果没有权限 if ((ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { //动态申请权限 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 10); } } } //控件初始化 private void widgetInit() { //请自行提升到全局,原型是:Button startscan = findViewById(R.id.startscan); btnCheckPermission = findViewById(R.id.btnCheckPermission); } //控件监听 private void widgetListener() { //测试权限按钮监听 btnCheckPermission.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION); if (permissionCheck == PackageManager.PERMISSION_GRANTED) {//如果有权限 Toast.makeText(MainActivity.this, "hava this permission", Toast.LENGTH_SHORT).show();//toast信息 Log.d("权限:","有定位权限");//在logcat上打印信息 }else { getPermission();//获取权限 Toast.makeText(MainActivity.this, "no this permission", Toast.LENGTH_SHORT).show();//toast信息 Log.d("权限:","无定位权限");//在logcat上打印信息 } } }); } private void bluetoothInit() { //如果不支持蓝牙 if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { //提示不支持蓝牙 Toast.makeText(this, "程序不支持该设备", Toast.LENGTH_SHORT).show(); //退出程序 finish(); } //创建蓝牙适配器原型是BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); //如果蓝牙适配器为空 if (bluetoothAdapter == null) { //显示设备无蓝牙 Toast.makeText(this, "设备无蓝牙", Toast.LENGTH_SHORT).show(); //退出 finish(); } //如果蓝牙未开启 if (!bluetoothAdapter.isEnabled()) { //不提示,直接开启蓝牙 bluetoothAdapter.enable(); //提示开启蓝牙中 Toast.makeText(this, "开启蓝牙中,如果未开启,请检查应用权限", Toast.LENGTH_SHORT).show(); } } } 2、布局文件activity_main.xml 效果图

通过log.d打印的内容:

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3