sensorsdata / sa-sdk-android

神策数据官方 Android 埋点 SDK,是一款轻量级用于 Android 端的数据采集埋点 SDK,包含代码埋点、全埋点、点击图和可视化全埋点功能。全埋点通过配合神策官方 Android 埋点插件来实现,神策数据官方 Android 埋点插件使用字节码插桩(ASM)的技术实现 Android 端的全埋点(无埋点、无码埋点、无痕埋点、自动埋点)。
http://opensource.sensorsdata.cn
Other
1.32k stars 434 forks source link

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

Closed WanghongLin closed 9 months ago

WanghongLin commented 10 months ago
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 9 months ago

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