diff --git a/myphoneinfo/andinfo/src/main/java/com/xyzshell/andinfo/libs/NetworkInfo.kt b/myphoneinfo/andinfo/src/main/java/com/xyzshell/andinfo/libs/NetworkInfo.kt index 54faed8..a04fac8 100644 --- a/myphoneinfo/andinfo/src/main/java/com/xyzshell/andinfo/libs/NetworkInfo.kt +++ b/myphoneinfo/andinfo/src/main/java/com/xyzshell/andinfo/libs/NetworkInfo.kt @@ -12,6 +12,7 @@ import android.telephony.* import android.util.Log import androidx.annotation.RequiresPermission import androidx.core.app.ActivityCompat +import java.util.Arrays import kotlin.text.compareTo /** @@ -133,11 +134,18 @@ class NetworkInfo(private val context: Context) { return null } + val cm = context + .getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + + val activeNetwork = cm.activeNetwork ?: return createEmptyWifiDetails() + val caps = cm.getNetworkCapabilities(activeNetwork) ?: return createEmptyWifiDetails() + + val connected = caps.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) + if (!connected) return createEmptyWifiDetails() + + return try { val wifiInfo = wifiManager.connectionInfo ?: return createEmptyWifiDetails() - val connected = wifiInfo.networkId != -1 - - if (!connected) return createEmptyWifiDetails() val dhcp = wifiManager.dhcpInfo val ssid = wifiInfo.ssid?.removePrefix("\"")?.removeSuffix("\"") @@ -246,6 +254,7 @@ class NetworkInfo(private val context: Context) { @RequiresPermission(Manifest.permission.READ_PHONE_STATE) fun getMobileDetails(): MobileDetails? { if (!checkPhonePermissions()) { + Log.i("XXXX","没有权限 READ_PHONE_STATE") return null } @@ -346,6 +355,7 @@ class NetworkInfo(private val context: Context) { simInfos = sims ) } catch (e: Exception) { + Log.i("XXXX","获取移动数据详情异常: ${e.message}") null } } @@ -446,14 +456,14 @@ class NetworkInfo(private val context: Context) { /** * 获取Wi-Fi相关权限列表 */ - fun getWifiPermissionsList(): List { + fun getWifiPermissionsList(): Array { val perms = mutableListOf() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { perms.add(Manifest.permission.ACCESS_FINE_LOCATION) } else { perms.add(Manifest.permission.ACCESS_WIFI_STATE) } - return perms + return perms.toTypedArray() } /** @@ -469,8 +479,8 @@ class NetworkInfo(private val context: Context) { /** * 获取电话相关权限列表 */ - fun getPhonePermissionsList(): List { - return listOf(Manifest.permission.READ_PHONE_STATE) + fun getPhonePermissionsList(): Array { + return arrayOf(Manifest.permission.READ_PHONE_STATE) } /** diff --git a/myphoneinfo/src/main/java/com/xyzshell/myphoneinfo/dashboard/DashboardFragment.kt b/myphoneinfo/src/main/java/com/xyzshell/myphoneinfo/dashboard/DashboardFragment.kt index 7d2ef2d..2e562e4 100644 --- a/myphoneinfo/src/main/java/com/xyzshell/myphoneinfo/dashboard/DashboardFragment.kt +++ b/myphoneinfo/src/main/java/com/xyzshell/myphoneinfo/dashboard/DashboardFragment.kt @@ -7,6 +7,7 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.annotation.RequiresPermission import androidx.core.app.ActivityCompat import androidx.recyclerview.widget.GridLayoutManager import com.xyzshell.andinfo.AndInfo @@ -74,8 +75,8 @@ class DashboardFragment : BaseFragment() { } + @RequiresPermission(Manifest.permission.READ_PHONE_STATE) private fun initCpu() { - binding.layoutCpu.run { recyclerCpu.run { adapter = CpuAdapter(requireContext()).apply {