zsbyg

  • 2024-04-30
  • 发表了主题帖: AndroidBLE_osc_申请权限

    这个软件的功能是通过蓝牙接收温度数据并绘制温度变化曲线 # 1.获取权限 安卓的BLE需要在AndroidManifest.xml里声明需要的权限。包括蓝牙权限,定位权限,在安卓12以后又增加了一些权限 ```xml                                         ``` # 2.动态申请 其中定位权限以及安卓12新增权限需要动态申请。因此下面需要在MainActivity里申请权限 ```java     protected void onResume() {         super.onResume();         if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION)                 != PackageManager.PERMISSION_GRANTED) {             ActivityCompat.requestPermissions(this,                     new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},                     MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);         }     }     @Override     public void onRequestPermissionsResult(int requestCode,                                            String[] permissions, int[] grantResults) {         switch (requestCode) {             case MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION: {                 if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {                     // Permission was granted, start scanning                     Toast.makeText(this, "已授予许可", Toast.LENGTH_SHORT).show();                 } else {                     // Permission denied, show a message                     Log.w("permission","Location permission is required to scan for BLE devices");                     Toast.makeText(this, "Location permission is required to scan for BLE devices", Toast.LENGTH_SHORT).show();                 finish();                 }                 return;             }         }     } ``` 其中onResume方法绘制主界面显示之前就区申请权限,onRequestPermissionsResult方法处理相关权限申请失败/成功后内容例如向用户提示申请成功/失败。 这是onResume方法返回的权限请求码,onRequestPermissionsResult通过请求码来处理响应的权限申请结果。 ``` private static final int REQUEST_ENABLE_BT = 1; private static final int MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1; ``` # 3.主函数需要判断设备是否支持BLE,蓝牙是否打开 ```java         final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(BLUETOOTH_SERVICE);         mBluetoothAdapter = bluetoothManager.getAdapter();         if (mBluetoothAdapter == null) {             Toast.makeText(this, "Bluetooth is not available", Toast.LENGTH_SHORT).show();             finish();             return;         }         if (!mBluetoothAdapter.isEnabled()) {             Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);             startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);         } ```

  • 2024-04-15
  • 回复了主题帖: elfboard配置交叉编译

    Jacktang 发表于 2024-4-11 07:34 又写到博客里啦啊 直接写到咱们eeworld呗 我不是很懂,请教下有什么区别,怎么操作

  • 2024-04-10
  • 发表了主题帖: elfboard配置交叉编译

    1.首先下载ubuntu/Lubuntu18.04版本 这是因为开发板的ubuntu版本是18.04 ,过高过低版本会导致引用的库版本过高 2.设置共享剪贴板 ---安装sudo apt vm-tool # 设置共享文件夹详细教程 3.安装交叉工具链 官方给的交叉编译工具链设置一直有问题。 这里直接使用 从apt上安装arm工具链 ``` sudo apt install gcc-arm-linux-gnueabihf ``` 编译命令 ``` arm-linux-gnueabihf-gcc led.c ``` [4.windows用ssh](http://4.windows)连接ubuntu `sudo apt-get install ssh` `sudo service ssh start` vscode上安装ssh插件 config文件 配置ubuntu名 ,ip地址 ,端口号 sx 192.168.221.130 22 known_hosts文件 保存ubuntu的密钥 ,删除密钥后需要重新输入密码 5.发送bin文件给开发板 scp led root@192.168.0.232:/home/root scp 文件 发送地址 给bin文件所在文件夹设置可执行权限 ` chmod -R 777 /home/root` 运行可执行文件 ./a.out

回复过的帖子

最近访客

< 1/1 >

统计信息

已有6人来访过

  • 芯积分:44
  • 好友:--
  • 主题:6
  • 回复:6

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言