首页 > 其他分享 >Android13的适配内容

Android13的适配内容

时间:2022-09-19 11:56:54浏览次数:90  
标签:13 Android13 适配 内容 应用 intent Android 权限

Android的13需要适配的内容

Android 13即将发布,对于这个版本的发版内容,记录一下Android开发者需要做的工作内容。

通知权限的适配

上一次的通知大改动是Android 8.0,增夹的内容是App的Channel。即每个App需要申请自己的通知通道,防止通知混乱。到了2022年的时候,现在增加了一个大的版本内容修改,通知权限的申请。再Android的Manifest配置文件中,增加权限申请。

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

不同的是Android 13之前是系统提示授权弹窗,Android 13之后是需要申请运行时权限才行。如果用户未打开需要让用户去申请。

    try {
        Intent intent = new Intent();
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
        intent.putExtra("app_package", applicationInfo.packageName);
        intent.putExtra("android.provider.extra.APP_PACKAGE", applicationInfo.packageName);
        intent.putExtra("app_uid", applicationInfo.uid);
        startActivity(intent);
    } catch (Throwable t) {
        t.printStackTrace();
        Intent intent = new Intent();
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
        intent.setData(Uri.fromParts("package", applicationInfo.packageName, null));
        startActivity(intent);
    }

读取媒体文件适配

读取READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE 权限细分为: READ_MEDIA_IMAGESREAD_MEDIA_VIDEOREAD_MEDIA_AUDIO

    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />

再Android 13上申明同时有了写权限的话就不需要申请WRITE_EXTERNAL_STORAGE,但是当前来说,还是要都写上权限内容,只有再具体使用的时候进行细分,比如读取照片或视频的时候在进行具体的权限适配。Android再13上也提供了照片选择器来给开发者使用。

对于检测类的WiFi相关的也需要进行适配

Android 13中对于附件WiFi的权限新增了NEARBY_WIFI_DEVICES,将WIFI权限从位置权限剥离出来。如果在Android 13之前你想通过NEARBY_WIFI_DEVICES来使用位置信息的话要注意啦,估计会报错的。实际操作过程是两个都要申请下来才行。
增加了后台传感器权限,对于需要心率、体温和血氧的数据应用,需要申请 BODY_SENSORSBODY_SENSORS_BACKGROUND权限才行。

前台服务增和App扩展启动场景有了新变化

App的intent-filter增加了判断逻辑,在 Android 13之前,跨应用显式启动Activity和Service,只需要将android:exported 设为true就可以,即使intent-filter 中 action 或者 type不匹配的情况下,也可以正常启动。只要intent-filter匹配中了,不管发送方的targetSdk版本,intent都会的生效。
前台服务的增加了用户停止的允许的操作,即可以从下拉的通知栏中停止前台服务。长时间(在 24 小时的时间段内至少运行 20 小时)的运行前台服务会主动触发信息提示给用户。APP is running in the background for a long time. Tap to review.这个提示的消除规则是:已经发送过前台服务相关的通知,即用户未关闭之前的提醒通知。;前台服务的类型为 FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK 或 FOREGROUND_SERVICE_TYPE_LOCATION。

存储分区增加受限

该功能会根据应用的使用时间和频率,动态地将应用分配到五个不同优先级的存储分区,对这些存储分区的应用施加不同级别的应用资源限制;

  1. 活跃:应用目前正在使用中,或者最近刚刚使用过
  2. 工作集:应用会定期使用
  3. 常用:应用会经常使用,但不会每天使用
  4. 极少使用:应用不经常使用
  5. 受限:应用会消耗大量的系统资源,或表现出不良行为。(Android 11引入)受限的应用无法启动前台服务;不会触发闹钟;现有的前台服务背会移除;不会执行Jobs

对受限存储分区的应用追加了以下限制措施:应用将不收受到BOOT_COMPLETED、LOCKED_BOOT_COMPLETED广播

新增功能

剪切板管理和照片选择器

标签:13,Android13,适配,内容,应用,intent,Android,权限
From: https://www.cnblogs.com/alasola/p/16707254.html

相关文章

  • 39. 网络加载框架Retrofit中的转换器和适配器
    39.网络加载框架Retrofit其他39.1Retrofit中的转换器在接到服务器响应后,目前无论是OKhttp还是Retrofit都只能接收到String字符串类型的数据,在实际开发中,通常需要对字符......
  • 内容理解在广告场景下的实践和探索
    导读: 内容生态建设是近几年互联网快速发展的关键动因,也是AI化的重点方向之一。本文主要分享在京东广告业务下内容理解体系的建设情况,从标签化、内容准入、质量美学评价等......
  • Qt之QLabel文本内容太长时可以使用省略号
    在使用QLabel进行文本内容显示时,有时候可能文本长度过长,会导致文本显示不全的问题,这个时候可以将文本内容的剩余部分使用...显示代码如下:MainWindow::MainWindow(QWidge......
  • 适配器-策略-观察者
    类适配器:承上启下承上是extends被适配类启下靠implements目标接口 i方法中改造e方法对象适配器:继承改聚合接口适配器:默认缺省,抽象类空实现所有方法,匿名内部......
  • 适配器模式
    Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。该角色把其他类转换为我们期望的接口Adapter(适配器类):将被适配者和目标接口组合......
  • 可编程 USB 转串口适配器开发板如何使用S2STool工具
    河北稳控科技可编程USB转串口适配器开发板如何使用S2STool工具可编程USB转UART/I2C/SMBusS/SPI/CAN/1-Wire适配器USB2S专用工具S2STool介绍S2STool是为S2S......
  • 测试内容曹大方四东京见识到了
    摘要:......
  • 也来写个PR内容产生器吧
    也来写个PR内容产生器吧用React开发桌面app帮自己省点时间说话便宜。给我看代码。repo放在前头是礼貌,react菜鸡欢迎批评指教(合掌)https://github.com/TomatoSoup0......
  • 【ACG】博主在专栏更新内容后,及时通知关注他的用户去阅读
    ​业务场景当用户打开应用时,系统发送Push消息给用户,向用户推荐博主信息。用户关注博主后,将保存用户的订阅信息,当关注的博主更新内容时,向订阅的用户发送短信,提醒用户及时......
  • python 将print内容打印到文件中
    python中print内容打印到文件中importsysfile=open("502log.txt",'a')sys.stdout=fileprint(time.asctime(),"开始请求。。。。。")file.close()这里将prin......