当前位置: 首页 > web >正文

aab转apk

一、 android34升级:
1、升级到安卓34(蓝牙、图片)

再蓝牙广播的地方加入Context.RECEIVER_EXPORTED

2、废弃了 BluetoothAdapter#enable() 和 BluetoothAdapter#disable(),需要修改

// 以前的蓝牙操作BluetoothManager bluetoothManager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE);BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();Log.i(TAG, "BluetoothAdapter isEnabled: " + bluetoothAdapter.isEnabled());if (!bluetoothAdapter.isEnabled()) {boolean enable = bluetoothAdapter.enable();Log.i(TAG, "BluetoothAdapter enable result: " + enable);
}
// 现在需要这样BluetoothManager bluetoothManager = (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE);BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();Log.i(TAG, "BluetoothAdapter isEnabled: " + bluetoothAdapter.isEnabled());if (!bluetoothAdapter.isEnabled()) {ActivityResultLauncher<Intent> register = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),new ActivityResultCallback<ActivityResult>() {@Overridepublic void onActivityResult(ActivityResult result) {if (result == null) {Log.i(TAG, "开启蓝牙失败:result 为 null");return;}int resultCode = result.getResultCode();if (resultCode != Activity.RESULT_OK) {Log.i(TAG, "开启蓝牙失败:resultCode 为 " + resultCode);return;}Log.i(TAG, "开启蓝牙成功:resultCode 为 " + resultCode);}});Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);register.launch(intent);
}

图片-头像-拍照:
androidmainfest 增加权限:      Manifest.permission.READ_MEDIA_IMAGES,
                        Manifest.permission.READ_MEDIA_VIDEO,
                        Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED,
                        

代码中动态请求:
                        Manifest.permission.READ_MEDIA_IMAGES,
                        Manifest.permission.READ_MEDIA_VIDEO,
                        Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED,

 

请求权限参考代码

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU&& (ContextCompat.checkSelfPermission(this, READ_MEDIA_IMAGES) == PERMISSION_GRANTED|| ContextCompat.checkSelfPermission(this, READ_MEDIA_VIDEO) == PERMISSION_GRANTED)) {// Android 13及以上完整照片和视频访问权限} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE &&ContextCompat.checkSelfPermission(this, READ_MEDIA_VISUAL_USER_SELECTED) == PERMISSION_GRANTED) {// Android 14及以上部分照片和视频访问权限} else if (ContextCompat.checkSelfPermission(this, READ_EXTERNAL_STORAGE) == PERMISSION_GRANTED) {// Android 12及以下完整本地读写访问权限} else {// 无本地读写访问权限}

                        


======================================================================================
打aab包:
1、将项目中的\app\src\main\assets中的bin文件夹全部移动到base_assets文件夹
2、打包aab:build->Android App Bundle->选择签名,得到aab的包

===============================================
直接AS运行到手机上测试的:
1、需要将base_assets中的\base_assets\src\main\assets的bin文件,拷贝到\app\src\main\assets
2、移除base_assets文件夹

================================================

将aab转换为apks
1、将aab的包拷贝到AAB_TO_APK文件夹(名称默认为app-release.aab),
2、点击click.bat,出来小黑屏,等待apks的生成 (如果无响应的,重新下载bundletool-all-1.18.1的版本、检查jdk的版本)

下载链接:https://github.com/google/bundletool/releases


3、得到出来aa.apks,解压获得apk的文件包
4、安装到手机测试功能

http://www.xdnf.cn/news/3480.html

相关文章:

  • DeepSeek玄学指令大全
  • 【电脑维修】MERCURY水星无线网卡导致 Windows 网络适配器无法连接的一种情况
  • T575729 正经数组
  • IDA pro接入千问大模型
  • Java关键字解析
  • 【dify—7】文本生成应用实战——学员周报生成
  • 「Mac畅玩AIGC与多模态12」开发篇08 - 使用自定义汇率查询插件开发智能体应用
  • 数字智慧方案6146丨智慧学院智能化项目规划设计方案(45页PPT)(文末有下载方式)
  • QT6 源(66)篇三:阅读与注释类 QAbstractSpinBox ,这是螺旋框的基类,附上源码
  • 销售预测业务优化设计方案汇报P99(99页PPT)(文末有下载方式)
  • C++使用accumulate函数对数组进行快速求和
  • C# System.Text.Json终极指南(十):从基础到高性能序列化实战
  • 论云原生架构及其应用
  • LTspice
  • Codeforces Round 1008 (Div. 2) C
  • ​基于51单片机的数字温度计—可显示负数
  • 23.linux中RGB的转HDMI实验_csdn
  • [c语言日寄]检查环形链表
  • 2025年4月文章一览
  • AD系列:Windows Server 2025 安装AD CS角色和颁发证书
  • 极大电视 0.0.5.2| 基于Web的电视直播应用,提供高清、流畅的央视频道和各大卫视直播,完全免费无广告
  • 文心智能体平台:接入文心最新旗舰版模型!
  • String StringBuilder StringBuffer
  • 数据结构与算法学习笔记(Acwing提高课)----动态规划·背包模型(一)
  • STL之string容器
  • Gen6D代码框架分析
  • 深度学习:基于脑机接口的虚拟世界意识控制探索
  • Qt二维码demo
  • 数据飞轮驱动AI系统持续进化
  • eNSP实验——防火墙 IPSec 配置