This commit is contained in:
yuqian 2026-01-09 11:19:34 +08:00
commit 3fa601d758
4 changed files with 39 additions and 4 deletions

View File

@ -9,6 +9,7 @@ import android.net.wifi.WifiManager
import android.net.wifi.WifiInfo import android.net.wifi.WifiInfo
import android.os.Build import android.os.Build
import android.telephony.* import android.telephony.*
import android.util.Log
import androidx.annotation.RequiresPermission import androidx.annotation.RequiresPermission
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import kotlin.text.compareTo import kotlin.text.compareTo
@ -128,6 +129,7 @@ class NetworkInfo(private val context: Context) {
// 检查权限 // 检查权限
if (!checkWifiPermissions()) { if (!checkWifiPermissions()) {
Log.i("XXXX","没有权限 ACCESS_WIFI_STATE 或 ACCESS_FINE_LOCATION")
return null return null
} }
@ -429,7 +431,7 @@ class NetworkInfo(private val context: Context) {
/** /**
* 检查Wi-Fi相关权限 * 检查Wi-Fi相关权限
*/ */
private fun checkWifiPermissions(): Boolean { fun checkWifiPermissions(): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
return ActivityCompat.checkSelfPermission( return ActivityCompat.checkSelfPermission(
context, context,
@ -441,17 +443,36 @@ class NetworkInfo(private val context: Context) {
Manifest.permission.ACCESS_WIFI_STATE Manifest.permission.ACCESS_WIFI_STATE
) == PackageManager.PERMISSION_GRANTED ) == PackageManager.PERMISSION_GRANTED
} }
/**
* 获取Wi-Fi相关权限列表
*/
fun getWifiPermissionsList(): List<String> {
val perms = mutableListOf<String>()
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
}
/** /**
* 检查电话相关权限 * 检查电话相关权限
*/ */
private fun checkPhonePermissions(): Boolean { fun checkPhonePermissions(): Boolean {
return ActivityCompat.checkSelfPermission( return ActivityCompat.checkSelfPermission(
context, context,
Manifest.permission.READ_PHONE_STATE Manifest.permission.READ_PHONE_STATE
) == PackageManager.PERMISSION_GRANTED ) == PackageManager.PERMISSION_GRANTED
} }
/**
* 获取电话相关权限列表
*/
fun getPhonePermissionsList(): List<String> {
return listOf(Manifest.permission.READ_PHONE_STATE)
}
/** /**
* 获取SIM卡状态文本 * 获取SIM卡状态文本
*/ */

View File

@ -2,17 +2,25 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS" /> <uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS"
tools:ignore="HighSamplingRate" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<uses-feature android:name="android.hardware.bluetooth" android:required="false" /> <uses-feature android:name="android.hardware.bluetooth" android:required="false" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false" /> <uses-feature android:name="android.hardware.bluetooth_le" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"/> <!-- Android 12+ -->
<application <application
android:name=".MyApplication" android:name=".MyApplication"
android:allowBackup="true" android:allowBackup="true"

View File

@ -6,6 +6,7 @@ import android.hardware.Sensor
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.format.Formatter import android.text.format.Formatter
import android.util.Log
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
@ -61,7 +62,6 @@ class MainActivity : ComponentActivity() {
} }
} }
requestBluetoothPermissionsIfNeeded() requestBluetoothPermissionsIfNeeded()
} }
private fun requestBluetoothPermissionsIfNeeded() { private fun requestBluetoothPermissionsIfNeeded() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
@ -92,6 +92,7 @@ fun MainView(name: String, modifier: Modifier = Modifier) {
var showBluetoothDialog by remember { mutableStateOf(false) } var showBluetoothDialog by remember { mutableStateOf(false) }
var showStorageDialog by remember { mutableStateOf(false) } var showStorageDialog by remember { mutableStateOf(false) }
Column (modifier.fillMaxWidth().verticalScroll(rememberScrollState())){ Column (modifier.fillMaxWidth().verticalScroll(rememberScrollState())){
Box(modifier = Modifier.fillMaxWidth()){ Box(modifier = Modifier.fillMaxWidth()){
Text(text = name, Modifier.align(Alignment.Center)) Text(text = name, Modifier.align(Alignment.Center))

View File

@ -1,11 +1,15 @@
package com.xyzshell.myphoneinfo.dashboard package com.xyzshell.myphoneinfo.dashboard
import android.Manifest
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.app.ActivityCompat
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.xyzshell.andinfo.AndInfo
import com.xyzshell.myphoneinfo.base.BaseFragment import com.xyzshell.myphoneinfo.base.BaseFragment
import com.xyzshell.myphoneinfo.databinding.FragmentDashboardBinding import com.xyzshell.myphoneinfo.databinding.FragmentDashboardBinding
import com.xyzshell.myphoneinfo.dialog.DialogAppInstall import com.xyzshell.myphoneinfo.dialog.DialogAppInstall
@ -71,6 +75,7 @@ class DashboardFragment : BaseFragment<FragmentDashboardBinding>() {
} }
private fun initCpu() { private fun initCpu() {
binding.layoutCpu.run { binding.layoutCpu.run {
recyclerCpu.run { recyclerCpu.run {
adapter = CpuAdapter(requireContext()).apply { adapter = CpuAdapter(requireContext()).apply {