最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 13新功能及適配工作詳解

 更新時(shí)間:2023年03月28日 11:33:37   作者:BennuCTech  
這篇文章主要為大家介紹了Android 13的新功能及需要哪些適配工作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

目前Google已經(jīng)發(fā)布了Android13的正式版,雖然國內(nèi)的手機(jī)能用上Android13還有一段時(shí)間,不過開發(fā)者們可以通過模擬器來體驗(yàn),那么我們來看看Android13都有哪些重要的改變,我們適配的話需要做哪些工作?

新功能和API

先來看看Android13帶來來哪些新的改變,這里我挑了一些對我們比較重要的來說。

具體可以參考developer.android.google.cn/about/versi…

帶主題的應(yīng)用圖標(biāo)

讓應(yīng)用圖標(biāo)隨著主題換色。

首先應(yīng)用要提供自適應(yīng)圖標(biāo)和單色應(yīng)用圖標(biāo),并通過清單中的 <adaptive-icon> 元素指向該單色應(yīng)用圖標(biāo)。

然后需要用戶在系統(tǒng)設(shè)置中啟用帶主題的應(yīng)用圖標(biāo)

這樣系統(tǒng)會根據(jù)壁紙和主題來確定色調(diào)顏色,然后該顏色將應(yīng)用于單色應(yīng)用圖標(biāo)。

剪貼板預(yù)覽

從 Android 13 開始,將內(nèi)容添加到剪貼板時(shí),我們可以預(yù)覽復(fù)制的內(nèi)容。如下

Android13也加入了對剪貼板敏感內(nèi)容的脫敏處理,后面會詳細(xì)說。

提高了啟動(dòng)畫面效率

Android12引入了Splash Screen API,可以幫助開發(fā)者更好的開發(fā)啟動(dòng)頁面,我之前也專門用一篇文章介紹過,不過有些地方還需要改進(jìn)。果不然Android13就進(jìn)行了完善,包括下面兩項(xiàng)改動(dòng);

  • 系統(tǒng)會直接從 AnimatedVectorDrawable 推斷動(dòng)畫時(shí)長。在 Android 13 之前,必須直接設(shè)置 windowSplashScreenAnimationDuration。
  • 使用新的 windowSplashScreenBehavior 屬性可以更好地控制應(yīng)用是否始終在 Android 13 及更高版本中的啟動(dòng)畫面上顯示該圖標(biāo)。

廣播接收

在以前任何應(yīng)用都可以向動(dòng)態(tài)注冊的接收器發(fā)送不受保護(hù)的廣播,除非該接收器受簽名權(quán)限的保護(hù)。Android13允許用戶指定是否接受外部應(yīng)用的廣播,前提是啟用了DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED 兼容性框架(默認(rèn)是關(guān)閉的)

在注冊廣播的時(shí)候設(shè)置一個(gè)Flag,如下:

context.registerReceiver(sharedBroadcastReceiver, intentFilter,
    RECEIVER_EXPORTED)
context.registerReceiver(privateBroadcastReceiver, intentFilter,
    RECEIVER_NOT_EXPORTED)

注意:如果啟用了DYNAMIC_RECEIVER_EXPLICIT_EXPORT_REQUIRED,在注冊廣播的時(shí)候就必須設(shè)置RECEIVER_EXPORTED或RECEIVER_NOT_EXPORTED。

照片選擇器

Android13提供了照片選擇器,這樣無需向應(yīng)用授予整個(gè)媒體庫的訪問權(quán)限。

使用照片選擇器需要 1.6.0-alpha05 或更高版本的 androidx.activity 庫,主要api:

  • PickVisualMedia,用于選擇單張圖片或單個(gè)視頻。
  • PickMultipleVisualMedia,用于選擇多張圖片或多個(gè)視頻。

示例代碼如下:

val pickMedia = registerForActivityResult(PickVisualMedia()) { uri ->
    if (uri != null) {
        Log.d("PhotoPicker", "Selected URI: $uri")
    } else {
        Log.d("PhotoPicker", "No media selected")
    }
}
pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.ImageAndVideo))
pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.ImageOnly))
pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.VideoOnly))
val mimeType = "image/gif"
pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.SingleMimeType(mimeType)))

附近WIFI設(shè)備新權(quán)限

Android13之前針對WIFI的權(quán)限是ACCESS_FINE_LOCATION,即使我們不想定位只想查詢一下附近的wifi。Android13提供了一個(gè)新的運(yùn)行時(shí)權(quán)限NEARBY_WIFI_DEVICES來專門針對這種情況,這個(gè)權(quán)限影響的API如下:

  • WifiManager

    • startLocalOnlyHotspot()
  • WifiAwareManager

    • attach()
  • WifiAwareSession

    • publish()
    • subscribe()
  • WifiP2pManager

    • addLocalService()
    • connect()
    • createGroup()
    • discoverPeers()
    • discoverServices()
    • requestDeviceInfo()
    • requestGroupInfo()
    • requestPeers()
  • WifiRttManager

    • startRanging()

使用以上Api需要申請NEARBY_WIFI_DEVICES權(quán)限。

精確鬧鐘權(quán)限

Android13提供了一個(gè)新的鬧鐘權(quán)限USE_EXACT_ALARM,它類似于SCHEDULE_EXACT_ALARM不過是自動(dòng)授權(quán)的,不需要用戶手動(dòng)授權(quán)。

Google對這個(gè)權(quán)限的要求是必須是鬧鐘、計(jì)時(shí)器或提供活動(dòng)通知的日歷應(yīng)用才可以使用,GooglePlay會對使用這個(gè)權(quán)限的應(yīng)用進(jìn)行審核。不過目前國內(nèi)還沒有限制,后續(xù)各大應(yīng)用市場應(yīng)該也會跟進(jìn)限制。

適配Android13

下面來看看適配Android13需要注意哪些事項(xiàng)。這里只列舉一些比較常用的功能,全部內(nèi)容可以參賽developer.android.google.cn/about/versi…

通知的運(yùn)行時(shí)權(quán)限

Android 13(API 級別 33)引入了運(yùn)行時(shí)通知權(quán)限POST_NOTIFICATIONS,如果應(yīng)用以 Android 13 為目標(biāo)平臺,當(dāng)需要發(fā)送通知的時(shí)候就需要?jiǎng)討B(tài)請求該權(quán)限,否則無法發(fā)出通知。

注意:媒體相關(guān)的通知不受這個(gè)權(quán)限的影響,依然可以正常進(jìn)行通知;前臺服務(wù)的通知?jiǎng)t受本權(quán)限影響。

可以通過NotificationManager的areNotificationsEnabled()來檢查應(yīng)用是否可以發(fā)送通知。

剪切板脫敏

上面我們提到Android13提供來剪切板預(yù)覽功能,但是如果復(fù)制的是敏感內(nèi)容的話,可以在調(diào)用 ClipboardManager#setPrimaryClip() 之前向 ClipData 的 ClipDescription 添加一個(gè)標(biāo)志,這樣預(yù)覽的時(shí)候就看不到敏感內(nèi)容了

代碼如下:

// When your app targets API level 33 or higher
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true)
    }
}
// If your app targets a lower API level
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean("android.content.extra.IS_SENSITIVE", true)
    }
}

添加標(biāo)志后的效果如下

附近WIFI設(shè)備新權(quán)限

上面提到了,針對附近WIFI設(shè)備提供了一個(gè)新的運(yùn)行時(shí)權(quán)限NEARBY_WIFI_DEVICES。

如果應(yīng)用不會使用WIFI相關(guān)API進(jìn)行定位,那么可以將 android:usesPermissionFlags 屬性設(shè)置為 neverForLocation:

<manifest ...>
     <uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"
                     android:usesPermissionFlags="neverForLocation" /> 
    <application ...>
        ...
    </application>
</manifest>

因?yàn)镹EARBY_WIFI_DEVICES只在Android13上,所以我們還要保留ACCESS_FINE_LOCATION以應(yīng)對Android12及以下設(shè)備,不過可以為其設(shè)置最高sdk版本,如下:

<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
                     android:maxSdkVersion="32" /> 
    <application ...>
        ...
    </application>
</manifest>

細(xì)化媒體權(quán)限

如果應(yīng)用以 Android 13 為目標(biāo)平臺,那么如果要訪問媒體文件時(shí)就不能像之前那樣請求READ_EXTERNAL_STORAGE權(quán)限,Android 13提供了更加細(xì)化的權(quán)限,必須請求以下權(quán)限來代替:

媒體類型請求權(quán)限
圖片和照片READ_MEDIA_IMAGES
視頻READ_MEDIA_VIDEO
音頻文件READ_MEDIA_AUDIO

這樣可以更加保護(hù)用戶的隱私。

如果同時(shí)請求 READ_MEDIA_IMAGES 權(quán)限和 READ_MEDIA_VIDEO 權(quán)限,只會顯示一個(gè)系統(tǒng)權(quán)限對話框。

注意:如果您的應(yīng)用只需要訪問圖片、照片和視頻,請考慮使用 照片選擇器,而不是聲明 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 權(quán)限。

后臺使用身體傳感器的新權(quán)限

如果應(yīng)用以 Android 13 為目標(biāo)平臺,并且在后臺運(yùn)行時(shí)需要訪問身體傳感器信息,那么除了現(xiàn)有的 BODY_SENSORS權(quán)限外,還需要聲明新的 BODY_SENSORS_BACKGROUND權(quán)限。

總結(jié)

以上就是Android 13版本中對開發(fā)者來說比較關(guān)心的新功能和適配方案,如果想了解更全面的信息,可以參考官方developer.android.google.cn/about/versi…

更多關(guān)于Android 13新功能適配的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android 應(yīng)用適配 Android 7.0 權(quán)限要求詳解

    Android 應(yīng)用適配 Android 7.0 權(quán)限要求詳解

    今天小編就為大家分享一篇Android 應(yīng)用適配 Android 7.0 權(quán)限要求詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Android自定義View手勢密碼

    Android自定義View手勢密碼

    這篇文章主要為大家詳細(xì)介紹了Android自定義View手勢密碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android開發(fā)Compose remember原理解析

    Android開發(fā)Compose remember原理解析

    這篇文章主要為大家介紹了Android開發(fā)Compose remember原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Android 仿支付寶密碼輸入框效果

    Android 仿支付寶密碼輸入框效果

    模仿支付寶輸入效果,實(shí)現(xiàn)很簡單,就是畫個(gè)矩形框和圓形,其他的通過組合view來實(shí)現(xiàn)所有功能,雖然簡單但是封裝起來,方便以后使用,也分享一下
    2016-12-12
  • Android控件之EditView常用屬性及應(yīng)用方法

    Android控件之EditView常用屬性及應(yīng)用方法

    本篇文章介紹了,Android控件之EditView常用屬性及應(yīng)用方法。需要的朋友參考下
    2013-04-04
  • Android基于ListView實(shí)現(xiàn)類似Market分頁加載效果示例

    Android基于ListView實(shí)現(xiàn)類似Market分頁加載效果示例

    這篇文章主要介紹了Android基于ListView實(shí)現(xiàn)類似Market分頁加載效果,結(jié)合完整實(shí)例形式分析了ListView的OnScroll方法來實(shí)現(xiàn)分頁與滾動(dòng)加載的操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-10-10
  • Android 兩種方法實(shí)現(xiàn)長按返回健退出

    Android 兩種方法實(shí)現(xiàn)長按返回健退出

    這篇文章主要介紹了Android 兩種方法實(shí)現(xiàn)長按返回健退出的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Android獲取移動(dòng)網(wǎng)絡(luò)信號強(qiáng)度的方法

    Android獲取移動(dòng)網(wǎng)絡(luò)信號強(qiáng)度的方法

    這篇文章主要介紹了Android獲取移動(dòng)網(wǎng)絡(luò)信號強(qiáng)度的方法,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-04-04
  • 利用kotlin實(shí)現(xiàn)統(tǒng)計(jì)文件字符個(gè)數(shù)的方法示例

    利用kotlin實(shí)現(xiàn)統(tǒng)計(jì)文件字符個(gè)數(shù)的方法示例

    最近在學(xué)習(xí)kotlin,發(fā)現(xiàn)了一些不錯(cuò)的小技巧,所以下面這篇文章主要給大家介紹了關(guān)于利用kotlin實(shí)現(xiàn)統(tǒng)計(jì)文件字符個(gè)數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Android ProductFlavor的使用詳解

    Android ProductFlavor的使用詳解

    如果你的項(xiàng)目需要要區(qū)分國內(nèi)版和國外版甚至還要根據(jù)用戶是否是VIP會員加上收費(fèi)和免費(fèi)的版本,我們可以使用ProductFlavor對UI布局和icon圖標(biāo)進(jìn)行版本區(qū)分,有此類需求的朋友,不妨了解下本文
    2021-06-06

最新評論

夏邑县| 泰安市| 正镶白旗| 新宾| 昆明市| 从江县| 扎兰屯市| 蛟河市| 廊坊市| 定西市| 静安区| 霍林郭勒市| 慈利县| 安义县| 肃北| 申扎县| 富民县| 邢台县| 天津市| 龙岩市| SHOW| 芦溪县| 武功县| 辽源市| 荣成市| 葵青区| 桦川县| 威信县| 津南区| 鄂尔多斯市| 哈巴河县| 台东县| 盘山县| 阳西县| 屯门区| 太白县| 梁河县| 揭东县| 建德市| 宁乡县| 合山市|