sensorsdata/sa-sdk-android

获取 network_type 移动网络类型权限检查优化

Closed this issue · 1 comments

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

已经过覆盖属性的方式自行处理