add two more metrics

This commit is contained in:
Martin Ptáček
2023-07-30 10:35:14 +02:00
parent 578c8b5e3e
commit c532bf1d8b
4 changed files with 64 additions and 6 deletions

View File

@ -7,11 +7,11 @@
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="$USER_HOME$/.android/avd/new4_device.avd" />
<value value="$USER_HOME$/.var/app/com.google.AndroidStudio/config/.android/avd/new_device.avd" />
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2023-07-29T19:05:07.449016617Z" />
<timeTargetWasSelectedWithDropDown value="2023-07-30T08:06:01.829441584Z" />
</component>
</project>

View File

@ -91,11 +91,39 @@ class AndroidCustomExporter(private val metricEngine: MetricsEngine) : Collector
}
private fun collectHasWiFiConnection(mfs : MutableList<MetricFamilySamples>){
metricEngine.getHasWiFiConnected()?.let {
val result : Double = if (it) {
1.0
}else{
0.0
}
val gauge = GaugeMetricFamily(
"android_wifi_connected",
"Whether WiFi is connected",
listOf()
)
gauge.addMetric(listOf(), result)
mfs.add(gauge)
}
}
private fun collectHasCellularConnection(mfs : MutableList<MetricFamilySamples>){
metricEngine.getHasCellularConnected()?.let {
val result : Double = if (it) {
1.0
}else{
0.0
}
val gauge = GaugeMetricFamily(
"android_cellular_network_connected",
"Whether cellular network is connected",
listOf()
)
gauge.addMetric(listOf(), result)
mfs.add(gauge)
}
}
private fun collectAndroidInfo(mfs : MutableList<MetricFamilySamples>){

View File

@ -9,6 +9,8 @@ import android.hardware.Sensor
import android.hardware.SensorManager
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.BatteryManager
import android.os.Build
import android.os.CpuUsageInfo
@ -240,11 +242,35 @@ class MetricsEngine(private val context: Context) : SensorEventListener {
return Build.MANUFACTURER
}
fun getHasCellularConnected() : Boolean {
TODO()
fun getHasCellularConnected() : Boolean? {
val connectivityManager = context
.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
return if (connectivityManager != null){
val network = connectivityManager.activeNetwork
val cap = connectivityManager.getNetworkCapabilities(network)
cap != null && cap.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)
}else{
null
}
}
fun getHasWiFiConnected() : Boolean {
TODO()
fun getHasWiFiConnected() : Boolean? {
val connectivityManager = context
.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager?
return if (connectivityManager != null){
val network = connectivityManager.activeNetwork
val cap = connectivityManager.getNetworkCapabilities(network)
cap != null && (cap.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) || cap.hasTransport(NetworkCapabilities.TRANSPORT_WIFI_AWARE))
}else{
null
}
}
}