Android - targetSdk 33

Android 13 运行时权限变更与 targetSdk 33 适配实战 运行时权限是 Android 在危险权限上要求动态申请与用户授权的安全机制,而 targetSdkVersion 决定应用在不同系统版本下遵循哪套行为契约。Android 13(API 33)对权限粒度与授权时机进一步收紧:通知需申请 POST_NOTIFICATIONS,媒体读取拆分为 READ_MEDIA_IMAGES/VIDEO/AUDIO,旧 READ_EXTERNAL_STORAGE 在 33 上失效,WiFi 扫描引入 NEARBY_WIFI_DEVICES。其技术价值在于最小权限与按需授权,能 阅读详情
targetSdk 33 上架谷歌市场需要处理广告权限
This release includes the com.google.android.gms.permission.AD_ID permission but your declaration on Play Console says your app doesn't use advertising ID.
You must update your advertising ID declaration.

Update declaration

项目里面因为引用库的权限里面声明了广告权限,如果项目中未使用可以选择移除

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
Google Play上架:google上架强制升级targetSDK为33导致安卓13机型出现权限获取异常 阅读详情

相关推荐

解决Android13/targetSdk 33无法读取/storage/emulated/0/文件的问题【 file not found最新解决办法】

Android10开始,系统平台的安全性得到了进一步的增强。开始采用沙盒模式、分区存储了!但是在Android10的时候,可以通过配置requestLegacyExternalStorage标记来禁用分区存储的特性,但在Android11之后,文档明确告诉你,配置无效。系统会忽略requestLegacyExternalStorage标记。这也就是为什么网上这么多人告诉你配置这个,但是却没用的原因!!!

韦_恩的博客 6856

Android 13 适配指南

Android 13 适配指南 是的,你没看错,现在就要带你适配 Android13。 2022 的Google I/O 发布了 Android 13 beta 2 和 Android 13 Beta 1 国内厂商的设备支持列表,虽然按照惯例, Android 13 应该是年末才发布正式版,但是相信有的开发者已经收到了平台的 Android13 的适配要求,所以本篇也是结合 Oppo 的 Android 13 应用兼容性适配指导 和官方提供的一些文档内容做一个整理测试。 [外链图片转存失败,源站可能

恋猫de小郭的博客 1万+

Android SDK android-33 安装与targetSdk 33适配全攻略

Android 应用开发离不开 API Level 与平台包的概念。Android SDK 中的 platform 包(如 android-33)本质是编译期接口字典,android.jar 提供了调用系统新接口的静态定义;而应用能否启用新系统行为,则取决于 targetSdk 的取值。开发者通过 sdkmanager 命令行安装对应 platform 和 build-tools,再在 Gradle 中配置 compileSdk 与 targetSdk,即可完成基础升级。这一过程广泛存在于三方 SDK 强制

weixin_29163857的博客 215

Android 13(targetSdkVersion:33)必需添加com.google.android.gms.permission.AD_ID

你要适配Android 13,必须将targetSdkVersion升至33,这都很正常;你必须添加com.google.android.gms.permission.AD_ID的权限获取,OK,虽然不知道我的APP没有广告为何一定要我加这个,你要加就加呗!但变态的是在提交新版本审核时,Google后台却问你为什么要获取这个权限。简直是10万个䓍泥马在奔腾呀!

哈里森 1万+

Android SDK 33升级适配指南:compileSdk与targetSdk全解读

Android SDK 33对应Android 13的API level 33,是应用适配新系统的重要节点。升级到API 33后,系统对通知权限、剪贴板读取、图片选择及前台服务类型等运行时行为作出更严格管控,理解这些机制是平滑迁移的前提。通过合理配置compileSdk与targetSdk,结合sdkmanager命令行自动化和adb验证技巧,开发者可以高效完成构建链路的升级与排查。该适配不仅满足上架审核要求,还能借助Photo Picker等系统能力优化用户体验,减少权限弹窗困扰。面向目标SDK升级评估者

weixin_28256233的博客 199

Android 13升级必看:targetSdk 33适配全流程与避坑指南

在Android应用开发中,targetSdk升级是适配新系统特性的关键步骤。Android 13(API 33)对权限模型和隐私保护做出了多项调整,例如通知权限变为运行时权限、前台服务必须声明具体类型、剪贴板访问触发系统提示等。这些变化直接影响推送、定位、相册等功能的实现方式。开发者需要从环境配置、Gradle参数、Manifest声明到业务代码逐层迁移,才能确保应用在targetSdk 33下稳定运行。针对常见的SDK组件缺失、SecurityException和模拟器真机差异等问题,也有相应的排查思路

weixin_29191669的博客 345

Android 13 变更及适配攻略

如果用户在搭载 Android 13 或更高版本的设备上安装您的应用,应用的通知默认处于关闭状态。在您请求新的权限且用户向您的应用授予该权限之前,您的应用都将无法发送通知。

唯鹿的博客 1万+

Android 13(API 33)SDK 配置与权限适配实战指南

在移动应用开发中,掌握Android SDK的版本管理是构建稳定项目的基础。Android 13对应API级别33,它引入了一系列行为变更与隐私增强,尤其是通知权限和媒体权限的拆分,深刻影响着应用兼容性。理解compileSdk、targetSdk与build-tools三者的关系,是绕开编译错误与环境工程问题的关键。通过合理配置Gradle依赖、SDK组件以及动态权限请求流程,开发者可以平滑完成从旧版本到Android 13的升级。本文以实际工程经验出发,梳理从SDK安装、环境变量配置、项目骨架搭建到高频

weixin_29184371的博客 288

android 33 适配升级踩坑

android 版本适配

ff_hh的博客 1万+

Android 13适配全攻略:targetSdk 33升级避坑指南

随着Android系统版本迭代,应用升级targetSdk已成为开发者必须面对的工程实践。Android 13(API 33)对运行时权限模型和组件声明规则做出重大调整,许多项目在升级android-33后出现通知不弹、相册选图失败、蓝牙扫描异常等兼容性问题。围绕SDK安装与Gradle配置,详解targetSdk 33适配中的关键权限变更、隐式Intent限制与前台服务类型约束,并整理常见编译与运行期报错的排查方法。通过合理配置compileSdk与targetSdk,并配合自动化检查,可有效降低升级风险

weixin_29196315的博客 258

android-33 SDK平台包安装、Gradle配置与模拟器验证全指南

在Android开发中,SDK平台包是编译链路的基石,它决定了应用能调用的系统API级别。android-33对应API 33,即Android 13的编译骨架,包含android.jar、AAPT2等关键工具。理解compileSdk、targetSdk与minSdk的职责边界,是升级目标版本的核心前提。通过sdkmanager命令行安装平台包、构建工具与模拟器镜像,可确保本机环境完整可用。将android-33正确接入Gradle后,还需适配Android 13的通知运行时权限、前台服务类型等行为变更,

weixin_32239523的博客 238

Android 项目 targetSdk 字段警告问题:Google Play requires that apps target API level 33 or higher.

Android 项目 targetSdk 字段警告问题:Google Play requires that apps target API level 33 or higher.

weixin_52173250的博客 993

西门子机床数据采集实战:从828D到840DSL的CNC设备联网与实时监控

本文深入探讨了西门子机床数据采集的实战方案,重点解析了从828D到840DSL等CNC设备如何实现免授权、低成本联网与实时监控。文章通过对比不同型号系统的数据接口差异,提供了详细的配置步骤、核心数据点清单以及避坑指南,旨在帮助工厂技术人员经济高效地挖掘机床数据价值,提升生产管理效率。

weixin_29181861的博客 1327

Android app targetSdk从28升级到33问题汇总

Android targetsdk升级

weixin_41548050的博客 5940

trae CN 配置ida的mcp教程

本文介绍了在TraeCN中配置IDA Pro MCP服务的完整步骤:1)准备IDA Pro 9.0+和Python 3.11+环境;2)安装MCP服务端并配置插件;3)生成MCP配置文件;4)在TraeCN中添加HTTP类型MCP服务(默认端口13337);5)测试连接。重点说明了HTTP配置方式的操作流程,包括手动启动服务、正确填写JSON配置等关键环节。

2401_87915504的博客 1955

什么是 SAPGUI 里的 Logon Group/Server

这意味着,不同的用户连接可以被分配到不同的应用服务器,以实现均衡的资源利用和降低某一服务器的负载压力。在这种配置下,欧洲的用户登录时选择“EUROPE_GROUP”,系统将自动选择一个位于欧洲的数据中心的服务器进行连接,这样不仅减少了网络延迟,还实现了服务器间的负载均衡。用户在 SAPGUI 中登录时,只需选择相应的 Logon Group(例如“FIN_GROUP”),系统就会自动将他们的连接请求分配到当前负载最小的应用服务器上,这种动态分配大大提升了系统的响应速度和稳定性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1069

Android 13 运行时权限适配:targetSdk 33 关键变更与避坑

Android 运行时权限是应用访问敏感能力的基础机制,随着系统版本升级,权限粒度不断细化,targetSdkVersion 决定应用是否进入新规则分支。Android 13(API 33)将通知、媒体读取、附近 WiFi 设备等能力拆分为独立运行时权限,例如 POST_NOTIFICATIONS、READ_MEDIA_IMAGES、NEARBY_WIFI_DEVICES。若仍沿用旧权限,可能静默失败,导致通知不弹、相册空白、WiFi 扫描无结果。理解权限申请、用户拒绝、永久拒绝与系统自动重置等状态,并按设

weixin_32496547的博客 288

解决MiGPT部署痛点:小米账号异地登录安全验证的解决方案

为让小米音箱更智能🤖,部署MiGPT时遇到小米账号异地登录验证问题,手动验证后仍无法解决。本文分享亲测有效的简化方案✨:通过浏览器F12获取passToken📝,手动创建mi.json配置文件并挂载到Docker容器,无需本地运行MiGPT,直接绕过异地验证,附完整操作步骤和问题排查指南。

XiaoqiangClub的博客 1438

android studio我发现targetsdk可以乱填

即使是targetSdk 31 是报红的,看起来似乎是错误,但是其实可以不用管;

219

【踩坑记录】colmap中的相机位姿的坐标系定义及其可视化结果的隐含转换

1 坐标系定义及转换   首先介绍一下世界坐标系和相机坐标系之间的转换,它们之间是存在一个转换关系的。现假设空间中一点X,它在相机坐标系下的坐标是Xcamera,在世界坐标系下的坐标是Xworld。假设它通过R和t实现从相机坐标系到世界坐标系之间的转换: Xworld = RXcamera + t   那么,由上式,我们可以推得从世界坐标系向相机坐标系的转换关系(RT=R-1,所以通常直接使用RT即可): Xcamera = RTXworld - RTt   所以,两个坐标系之间的转换,需要看其具体

zeeq的博客 2万+

Cleo Synchronization接口任意文件读取漏洞CVE-2024-50623 附POC

微信公众号搜索:南风漏洞复现文库该文章 南风漏洞复现文库 公众号首发Cleo。

nnn2188185的博客 480

Cocos2dx-Android手机生成文件夹失败问题

Cocos2dx、Android11、文件操作、S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP、S_IRWXU | S_IRWXG | S_IRWXO

u010682223的博客 332

27、视网膜血管识别与分类的数据集和验证过程

本文介绍了视网膜血管自动识别与分类方法所使用的数据集及其验证过程。通过30张高分辨率的近红外反射视网膜图像,结合专业医生的手动标注结果,构建了包含597个血管段的基准数据集。研究采用准确率、召回率、F1分数和混淆矩阵等评估指标对模型进行验证,并提出了特征增强和分类器优化策略以提升性能。实验结果显示,该方法在复杂区域具有较强的鲁棒性和较高的准确性,为临床应用提供了可靠的依据。

i7j8k9l的博客 148

谷歌aab包在Android 14闪退而apk没问题(targetsdk 34)

翻译过来就是,Goole I/O 2023讨论的,使用RECEIVER_EXPORTED / RECEIVER_NOT_EXPORTED标志注册接收者是Android 13的一部分,现在是运行在Android 14或更高版本(U+)上的应用程序的要求。Unity应用上线到GooglePlay,有用户反馈fold5设备上(Android14系统)疯狂闪退,经测试,在小米手机Android14系统的版本复现成功了,奇怪的是apk直接安装没问题,而打包成aab就是疯狂闪退。

鱼蛋的开发小站 4689

智能测试策略优化:平衡覆盖率、时间和资源

在软件开发过程中,测试是确保软件质量的关键环节。然而,测试工作往往面临着诸多挑战,其中如何在保证测试覆盖率的前提下,合理分配时间和资源是一个核心问题。本文章的目的在于探讨智能测试策略的优化方法,帮助软件测试团队在有限的时间和资源条件下,实现尽可能高的测试覆盖率。文章的范围涵盖了智能测试策略的核心概念、算法原理、数学模型、实际应用案例以及相关工具和资源等方面。本文将按照以下结构进行组织:首先介绍智能测试策略优化的背景和相关概念,包括核心术语和缩略词的定义;

AIGC应用创新大全的博客 620

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android 编译版本升级target 33

对了,说明一下吧,放弃的根本原因是,我调研的差不多的时候,想起来,flutter我还没进行处理,项目里面有flutter,然后我就尝试编译flutter,郁闷的事情来了,kotlin的版本,还是什么问题,flutter根本编译不通过,具体原因,我记不得了。对了,提供一些flutter只是:flutter 3.7.12版本支持 target33,官方在这个版本做了支持,由于我写文档有点晚,链接资料,都不能提供了。

marchlqq的专栏 3066

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: iOS - 接入 Live2D
下一篇: Android - SeekBar
Client_Block
博客等级 码龄11年 33粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值