获取 network_type 移动网络类型权限检查优化
Closed this issue · 1 comments
WanghongLin commented
323 if (networkType == TelephonyManager.NETWORK_TYPE_UNKNOWN) {
324 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
325 // 在 Android 11 平台上,没有 READ_PHONE_STATE 权限时
326 return "NULL";
327 }
328
329 if (connectivityManager != null) {
330 NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
331 if (networkInfo != null) {
332 networkType = networkInfo.getSubtype();
333 }
334 }
335 }
官方的 API 文档 android.net.ConnectivityManager#getActiveNetworkInfo
以及 android.net.ConnectivityManager#getNetworkInfo(int)
都不需要 READ_PHONE_STATE
权限,仅仅需要 ACCESS_NETWORK_STATE
即可。建议优化这里的逻辑。否则大部分情况下获取到的移动网络类型都是 NULL
WanghongLin commented
已经过覆盖属性的方式自行处理