爱笑的姑娘|拖不得了,Android11真的要来了,最全适配实践指南奉上( 四 )
糟了糟了 , 自定义toast被弃用了?我们项目就是用的这个啊!不用担心 , 只是不允许自定义toast从后台显示了 。比如我写一个3秒后再显示toast , 然后应用一打开就进入后台 , 看看会发生什么:
Handler().postDelayed({IToast.show("你好 , 我是自定义toast")}, 3000)W/NotificationService: Blocking custom toast from package com.example.studynote due to package not in the foreground
啥也没显示 , 只是发出来一个警告 。所以不用太过担心 , 如果实在需要后台显示 , 就用普通的toast吧!
现在需要 APK 签名方案 v2 ?对于以 Android 11(API 级别 30)为目标平台 , 且目前仅使用 APK 签名方案 v1 签名的应用 , 现在还必须使用 APK 签名方案 v2 或更高版本进行签名 。 用户无法在搭载 Android 11 的设备上安装或更新仅通过 APK 签名方案 v1 签名的应用 。
这个介绍已经很明显了吧 , 如果你的targetSdkVersion修改到30 , 那么你就必须要加上v2签名才行 。 否则无法安装和更新 。
媒体intent操作需要系统默认相机 ?从 Android 11 开始 , 只有预装的系统相机应用可以响应以下 intent 操作:
android.media.action.VIDEO_CAPTURE android.media.action.IMAGE_CAPTURE android.media.action.IMAGE_CAPTURE_SECURE
也就是说 , 如果我调用intent唤起照相机 , 使用VIDEO_CAPTURE的action , 只有系统的相机能够响应 , 而第三方的相机应用不会响应了 。
val intent=Intent()intent.action=android.provider.MediaStore.ACTION_IMAGE_CAPTUREstartActivity(intent)//无法唤起第三方相机了 , 只能唤起系统相机
这点对普通的相机应用还是有点打击的 , 官方给的建议是如果要使用特定的第三方相机应用来代表其捕获图片或视频 , 可以通过为intent设置软件包名称或组件来使这些intent变得明确 。
5G ?Android 11 添加了在您的应用中支持 5G 的功能
新的Android11也是支持了5G相关的一些功能 , 包括:
- 检测是否连接到了5G网络
- 检查按流量计费性
private fun getNetworkType(){val tManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManagertManager.listen(object : PhoneStateListener() {@RequiresApi(Build.VERSION_CODES.R)override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {if (ActivityCompat.checkSelfPermission(this@Android11Test2Activity, android.Manifest.permission.READ_PHONE_STATE) != android.content.pm.PackageManager.PERMISSION_GRANTED) {return}super.onDisplayInfoChanged(telephonyDisplayInfo)when(telephonyDisplayInfo.networkType) {TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO -> showToast("高级专业版 LTE (5Ge)")TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA -> showToast("NR (5G) - 5G Sub-6 网络")TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE -> showToast("5G+/5G UW - 5G mmWave 网络")else -> showToast("other")}}}, PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED)}
如果是5g网络 , 就免不了要去判断是不是按流量计费的 , 否则5G的流量可不是开玩笑的 。检测流量计费方法也很简单 , 监听网络 , 在回调中判断:
val manager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManagermanager.registerDefaultNetworkCallback(object : ConnectivityManager.NetworkCallback() {override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) {super.onCapabilitiesChanged(network, networkCapabilities)//true 代表连接不按流量计费val isNotFlowPay=networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED) ||networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)}})
- 东方网综合|又一大牌扛不住了!关店3000家,裁员6000人!很多姑娘都爱买
- 钱江晚报|小区保安突发疾病,刚上完夜班的白衣小姑娘跪地急救,累到虚脱
- 老王开说|灰姑娘的童话故事终究破灭,戴安娜王妃的深情只换来查尔斯的敷衍
- 钱江晚报·小时新闻|小区保安突发疾病,刚上完夜班的杭州白衣小姑娘跪地急救,累到虚脱
- 穿搭|到了三十的姑娘,更喜欢穿着高跟鞋去逛街,为了衬托气质
- BiuFashion|唐嫣“扮嫩”技术好,穿粉色裙子甜美可爱,气质像没长大的小姑娘
- 旗袍裙|长相平凡的姑娘,今春建议穿“这件”裙,时髦显瘦气质不俗!
- [赵雅芝]赵雅芝的身材真不赖,穿红色披风裙,天鹅颈直角肩小姑娘都羡慕
- BiuFashion|被周海媚美到了,身穿香芋紫针织衫配运动裤,嫩度不输小姑娘
- 衬衫|许晴真是69年的人?穿条纹衬衫裙秀身材,曲线还跟小姑娘似的衬衫的搭配衬衫的下衣失踪要注意哪些?衬衫的其他搭配