add network
This commit is contained in:
parent
f9a640cc5c
commit
e5a7720af1
@ -86,6 +86,14 @@ object SetNumberOrWordUtils {
|
||||
return closestRatio
|
||||
}
|
||||
|
||||
fun getHoursString(int: Int):String{
|
||||
val div = int.div(3600)
|
||||
return if(div>1){
|
||||
"$div hours"
|
||||
}else{
|
||||
"$div hour"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package com.xyzshell.myphoneinfo.dashboard
|
||||
|
||||
import android.Manifest
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
@ -7,12 +8,15 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.RequiresPermission
|
||||
import com.xyzshell.andinfo.AndInfo
|
||||
import com.xyzshell.andinfo.libs.NetworkInfo
|
||||
import com.xyzshell.myphoneinfo.R
|
||||
import com.xyzshell.myphoneinfo.custom.PermissionChecker
|
||||
import com.xyzshell.myphoneinfo.custom.SetNumberOrWordUtils.getHoursString
|
||||
import com.xyzshell.myphoneinfo.databinding.FragmentNetworkBinding
|
||||
import com.xyzshell.myphoneinfo.dialog.ShowLoadFragment
|
||||
import kotlin.toString
|
||||
|
||||
class NetworkFragment : Fragment() {
|
||||
|
||||
@ -36,12 +40,15 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
networkInfo= AndInfo.instance.network
|
||||
refreshStatus()
|
||||
setMobileInfo()
|
||||
if(PermissionChecker.getMissingPermissions(context = requireContext()).isNotEmpty()){
|
||||
PermissionChecker.requestSimple(
|
||||
requireActivity(),
|
||||
onGranted = {
|
||||
// 权限已授予,执行操作
|
||||
|
||||
refreshStatus()
|
||||
},
|
||||
onDenied = {
|
||||
// 权限被拒绝
|
||||
@ -49,23 +56,6 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
}
|
||||
)
|
||||
}
|
||||
networkInfo= AndInfo.instance.network
|
||||
val currentNetworkType = networkInfo.getCurrentNetworkType()
|
||||
when (currentNetworkType) {
|
||||
NetworkInfo.NetworkType.WIFI -> {
|
||||
status = 1
|
||||
setWifiDetail()
|
||||
}
|
||||
NetworkInfo.NetworkType.MOBILE -> {
|
||||
status = 2
|
||||
setMobileInfo()
|
||||
}
|
||||
else -> {
|
||||
status = 0
|
||||
setNoConnect()
|
||||
}
|
||||
}
|
||||
|
||||
//wifi
|
||||
binding.networkLayout.wfText1.textTitle.text=getString(R.string.status)
|
||||
// binding.networkLayout.wfText2.textTitle.text=getString(R.string.network)
|
||||
@ -87,6 +77,14 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
binding.networkLayout.dhText7.textTitle.text=getString(R.string.ip_address)
|
||||
binding.networkLayout.dhText8.textTitle.text=getString(R.string.ipv6)
|
||||
|
||||
//Hardware
|
||||
binding.networkLayout.hardCheck1.content.text=getString(R.string.standard_all)
|
||||
binding.networkLayout.hardCheck2.content.text=getString(R.string.wifi_direct_support)
|
||||
binding.networkLayout.hardCheck3.content.text=getString(R.string.wifi_aware_support)
|
||||
binding.networkLayout.hardCheck4.content.text=getString(R.string.wifi_passpoint_support)
|
||||
binding.networkLayout.hardCheck5.content.text=getString(R.string.ghz_band_support)
|
||||
binding.networkLayout.hardCheck6.content.text=getString(R.string.ghz6_band_support)
|
||||
|
||||
//mobel
|
||||
binding.mdText1.textTitle.text=getString(R.string.dual_sim_dual_standby)
|
||||
binding.mdText2.textTitle.text=getString(R.string.phone_type)
|
||||
@ -99,10 +97,6 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
binding.defText2.textTitle.text=getString(R.string.voice)
|
||||
binding.defText3.textTitle.text=getString(R.string.short_message)
|
||||
|
||||
binding.simText1.textTitle.text=getString(R.string.status)
|
||||
binding.simText2.textTitle.text=getString(R.string.nation)
|
||||
binding.simText3.textTitle.text=getString(R.string.roaming)
|
||||
binding.simText4.textTitle.text=getString(R.string.network_type)
|
||||
|
||||
binding.networkLayout.pubShow.setOnClickListener{
|
||||
val tag = "showLoadFragment"
|
||||
@ -113,6 +107,23 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
}
|
||||
}
|
||||
|
||||
private fun refreshStatus() {
|
||||
val currentNetworkType = networkInfo.getCurrentNetworkType()
|
||||
when (currentNetworkType) {
|
||||
NetworkInfo.NetworkType.WIFI -> {
|
||||
status = 1
|
||||
setWifiDetail()
|
||||
}
|
||||
NetworkInfo.NetworkType.MOBILE -> {
|
||||
status = 2
|
||||
setMobileInfo()
|
||||
}
|
||||
else -> {
|
||||
status = 0
|
||||
setNoConnect()
|
||||
}
|
||||
}
|
||||
}
|
||||
private fun setNoConnect() {
|
||||
binding.noConnect.visibility=View.VISIBLE
|
||||
binding.connectData.visibility=View.GONE
|
||||
@ -132,22 +143,58 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
binding.networkLayout.wifiList.visibility=View.VISIBLE
|
||||
binding.networkLayout.llPubShow.visibility=View.VISIBLE
|
||||
networkInfo.getMobileDetails()?.let { mobileDetails ->
|
||||
//mobel
|
||||
// binding.mdText1.textTitle.text=getString(R.string.dual_sim_dual_standby)
|
||||
// binding.mdText2.textTitle.text=getString(R.string.phone_type)
|
||||
// binding.mdText3.textTitle.text=getString(R.string.esim)
|
||||
//
|
||||
// binding.conTexts.textTitle.text=getString(R.string.status)
|
||||
//
|
||||
// binding.defText1.textTitle.text=getString(R.string.data)
|
||||
//
|
||||
// binding.defText2.textTitle.text=getString(R.string.voice)
|
||||
// binding.defText3.textTitle.text=getString(R.string.short_message)
|
||||
//
|
||||
// binding.simText1.textTitle.text=getString(R.string.status)
|
||||
// binding.simText2.textTitle.text=getString(R.string.nation)
|
||||
// binding.simText3.textTitle.text=getString(R.string.roaming)
|
||||
// binding.simText4.textTitle.text=getString(R.string.network_type)
|
||||
binding.mdText1.textContent.text=mobileDetails.dualSim.toString()
|
||||
binding.mdText2.textContent.text=mobileDetails.phoneType.toString()
|
||||
binding.mdText3.textContent.text=mobileDetails.esimSupported.toString()
|
||||
binding.conTexts.textContent.text=mobileDetails.dataEnabled.toString()
|
||||
binding.defText1.textContent.text=mobileDetails.dataSim.toString()
|
||||
binding.defText2.textContent.text=mobileDetails.voiceSim.toString()
|
||||
binding.defText3.textContent.text=mobileDetails.smsSim.toString()
|
||||
if(mobileDetails.simInfos.isNotEmpty()){
|
||||
binding.simInfo1.simText1.textTitle.text=getString(R.string.status)
|
||||
binding.simInfo1.simText2.textTitle.text=getString(R.string.nation)
|
||||
binding.simInfo1.simText3.textTitle.text=getString(R.string.roaming)
|
||||
binding.simInfo1.simText4.textTitle.text=getString(R.string.network_type)
|
||||
binding.simInfo1.simText1.textContent.text=if(status==2) true.toString() else false.toString()
|
||||
binding.simInfo1.simText2.textContent.text=mobileDetails.simInfos[0].countryIso.toString()
|
||||
binding.simInfo1.simText3.textContent.text=mobileDetails.simInfos[0].roaming.toString()
|
||||
if(mobileDetails.simInfos.size>1){
|
||||
binding.simInfo2.root.visibility=View.VISIBLE
|
||||
binding.simInfo2.simText1.textTitle.text=getString(R.string.status)
|
||||
binding.simInfo2.simText2.textTitle.text=getString(R.string.nation)
|
||||
binding.simInfo2.simText3.textTitle.text=getString(R.string.roaming)
|
||||
binding.simInfo2.simText4.textTitle.text=getString(R.string.network_type)
|
||||
binding.simInfo2.simText1.textContent.text=if(status==2) true.toString() else false.toString()
|
||||
binding.simInfo2.simText2.textContent.text=mobileDetails.simInfos[1].countryIso.toString()
|
||||
binding.simInfo2.simText3.textContent.text=mobileDetails.simInfos[1].roaming.toString()
|
||||
}
|
||||
}else{
|
||||
binding.simInfo1.root.visibility=View.GONE
|
||||
binding.simInfo2.root.visibility=View.GONE
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置wifi信息
|
||||
* */
|
||||
// binding.networkLayout.wfText2.textTitle.text=getString(R.string.network)
|
||||
// binding.networkLayout.wfText3.textTitle.text=getString(R.string.bssid)
|
||||
// binding.networkLayout.wfText4.textTitle.text=getString(R.string.function)
|
||||
// binding.networkLayout.wfText5.textTitle.text=getString(R.string.connection_speed)
|
||||
// binding.networkLayout.wfText6.textTitle.text=getString(R.string.signal_strength)
|
||||
// binding.networkLayout.wfText7.textTitle.text=getString(R.string.frequency)
|
||||
// binding.networkLayout.wfText8.textTitle.text=getString(R.string.frequency_band)
|
||||
// binding.networkLayout.wfText9.textTitle.text=getString(R.string.channel)
|
||||
// binding.networkLayout.wfText10.textTitle.text=getString(R.string.standard)
|
||||
private fun setWifiDetail() {
|
||||
binding.noConnect.visibility=View.GONE
|
||||
binding.conText1.text=getString(R.string.wifi)
|
||||
@ -156,9 +203,12 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
binding.networkLayout.llPubShow.visibility=View.VISIBLE
|
||||
networkInfo.getWifiDetails()?.let { wifiDetails ->
|
||||
Log.d("TTTTTTTT", (wifiDetails.signalLevelPercent?: "null").toString())
|
||||
binding.strengthView.setStrength(wifiDetails.signalLevelPercent?: 0)
|
||||
binding.conText2.text="${wifiDetails.ssid}·${wifiDetails.linkSpeedMbps}"
|
||||
binding.conTExt3.text="${wifiDetails.signalLevelPercent} ${wifiDetails.rssi}"
|
||||
wifiDetails.signalLevelPercent?.let { percent->
|
||||
binding.strengthView.setStrength(calculateSignalLevel(percent = percent))
|
||||
}
|
||||
|
||||
binding.conText2.text="${wifiDetails.ssid}·${wifiDetails.linkSpeedMbps} Mbps"
|
||||
binding.conTExt3.text="${wifiDetails.signalLevelPercent}% ${wifiDetails.rssi} dBm"
|
||||
if(wifiDetails.connected){
|
||||
binding.networkLayout.wfText1.textContent.text=getString(R.string.connectivity_status)
|
||||
}else{
|
||||
@ -167,15 +217,42 @@ private lateinit var binding:FragmentNetworkBinding
|
||||
|
||||
binding.networkLayout.wfText3.textContent.text=wifiDetails.bssid
|
||||
binding.networkLayout.wfText4.textContent.text=wifiDetails.capabilities
|
||||
binding.networkLayout.wfText5.textContent.text=wifiDetails.linkSpeedMbps.toString()
|
||||
binding.networkLayout.wfText6.textContent.text=wifiDetails.signalLevelPercent.toString()
|
||||
binding.networkLayout.wfText7.textContent.text=wifiDetails.frequency.toString()
|
||||
binding.networkLayout.wfText5.textContent.text="${wifiDetails.linkSpeedMbps} Mbps"
|
||||
binding.networkLayout.wfText6.textContent.text="${wifiDetails.rssi} dBm"
|
||||
binding.networkLayout.wfText7.textContent.text="${wifiDetails.frequency} MHz"
|
||||
binding.networkLayout.wfText8.textContent.text=wifiDetails.channel.toString()
|
||||
binding.networkLayout.wfText10.textContent.text=wifiDetails.standard.toString()
|
||||
|
||||
binding.networkLayout.dhText1.textContent.text=wifiDetails.dhcpServer
|
||||
binding.networkLayout.dhText2.textContent.text=getHoursString(wifiDetails.leaseDuration?: 0)
|
||||
binding.networkLayout.dhText3.textContent.text=wifiDetails.gateway
|
||||
binding.networkLayout.dhText4.textContent.text=wifiDetails.subnetMask
|
||||
binding.networkLayout.dhText5.textContent.text=wifiDetails.dns1
|
||||
binding.networkLayout.dhText6.textContent.text=wifiDetails.dns2
|
||||
binding.networkLayout.dhText7.textContent.text=wifiDetails.ip
|
||||
val toString = wifiDetails.ipv6.toString()
|
||||
val ipv6 = toString.replace("[", "").replace("]", "")
|
||||
binding.networkLayout.dhText8.textContent.text=ipv6
|
||||
|
||||
binding.networkLayout.hardCheck1.image.isSelected= wifiDetails.supportedStandards?.size==5
|
||||
binding.networkLayout.hardCheck2.image.isSelected= wifiDetails.wifiDirect == true
|
||||
binding.networkLayout.hardCheck3.image.isSelected= wifiDetails.wifiAware == true
|
||||
binding.networkLayout.hardCheck4.image.isSelected= wifiDetails.wifiPasspoint == true
|
||||
binding.networkLayout.hardCheck5.image.isSelected= wifiDetails.support5G == true
|
||||
binding.networkLayout.hardCheck6.image.isSelected= wifiDetails.support6G == true
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private fun calculateSignalLevel( percent: Int) : Int {
|
||||
return when {
|
||||
percent >= 80 -> 5 // 优秀
|
||||
percent >= 60 -> 4 // 良好
|
||||
percent >= 40 -> 3 // 一般
|
||||
percent >= 20 -> 2 // 差
|
||||
else -> 1 // 非常差/无信号
|
||||
}
|
||||
}
|
||||
companion object {
|
||||
|
||||
@JvmStatic
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
style="@style/TextBig"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Wi-Fi"
|
||||
android:text=""
|
||||
android:textStyle="bold"
|
||||
tools:ignore="RelativeOverlap" />
|
||||
|
||||
@ -86,7 +86,7 @@
|
||||
style="@style/LeftContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="LUX·433 Mbps"
|
||||
android:text=""
|
||||
android:textStyle="bold"
|
||||
tools:ignore="RelativeOverlap" />
|
||||
|
||||
@ -95,7 +95,7 @@
|
||||
style="@style/LeftContent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="80% -60dBm"
|
||||
android:text=""
|
||||
android:textStyle="bold"
|
||||
tools:ignore="RelativeOverlap" />
|
||||
</LinearLayout>
|
||||
@ -189,26 +189,17 @@
|
||||
<include
|
||||
android:id="@+id/defText3"
|
||||
layout="@layout/common_text_style" />
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
style="@style/TextHeavy20"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:text="@string/sim_card_1"
|
||||
tools:ignore="RelativeOverlap" />
|
||||
<include
|
||||
android:id="@+id/simText1"
|
||||
layout="@layout/common_text_style" />
|
||||
android:id="@+id/simInfo1"
|
||||
layout="@layout/item_set_sim"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
<include
|
||||
android:id="@+id/simText2"
|
||||
layout="@layout/common_text_style" />
|
||||
<include
|
||||
android:id="@+id/simText3"
|
||||
layout="@layout/common_text_style" />
|
||||
<include
|
||||
android:id="@+id/simText4"
|
||||
layout="@layout/common_text_style" />
|
||||
|
||||
android:id="@+id/simInfo2"
|
||||
layout="@layout/item_set_sim"
|
||||
android:layout_width="match_parent"
|
||||
android:visibility="gone"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
25
myphoneinfo/src/main/res/layout/item_set_sim.xml
Normal file
25
myphoneinfo/src/main/res/layout/item_set_sim.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="match_parent">
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/simTitle"
|
||||
style="@style/TextHeavy20"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="30dp"
|
||||
android:text="@string/sim_card_1" />
|
||||
<include
|
||||
android:id="@+id/simText1"
|
||||
layout="@layout/common_text_style" />
|
||||
<include
|
||||
android:id="@+id/simText2"
|
||||
layout="@layout/common_text_style" />
|
||||
<include
|
||||
android:id="@+id/simText3"
|
||||
layout="@layout/common_text_style" />
|
||||
<include
|
||||
android:id="@+id/simText4"
|
||||
layout="@layout/common_text_style" />
|
||||
</LinearLayout>
|
||||
@ -119,7 +119,7 @@
|
||||
<string name="show">Show</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="mobile_data">Mobile Data</string>
|
||||
<string name="dual_sim_dual_standby">Dual SIM dual standby</string>
|
||||
<string name="dual_sim_dual_standby">Dual SIM</string>
|
||||
<string name="esim">eSIM</string>
|
||||
<string name="sim_card_1">SIM 1</string>
|
||||
<string name="sim_card_2">SIM 2</string>
|
||||
@ -322,5 +322,10 @@
|
||||
<string name="connectivity_status">Connected</string>
|
||||
<string name="not_connected">Not connected</string>
|
||||
<string name="gps">GPS</string>
|
||||
|
||||
<string name="standard_all">802.11 b/a/g/n/ac/ax/be</string>
|
||||
<string name="wifi_direct_support">Wi-Fi Direct support</string>
|
||||
<string name="wifi_aware_support">Wi-Fi Aware support</string>
|
||||
<string name="wifi_passpoint_support">Wi-Fi Passpoint support</string>
|
||||
<string name="ghz_band_support">5GHz band support</string>
|
||||
<string name="ghz6_band_support">6GHz band support</string>
|
||||
</resources>
|
||||
Loading…
Reference in New Issue
Block a user