Cómo leer las propiedades de Android con Java

Utilizo 'getbop de shell adb' en el terminal. ¿Qué interfaces puedo utilizar en Android JAVA para obtener la misma información?

He intentado varias cosas como:

Properties sysProps = System.getProperties(); 

Pero no creo que estas son las mismas propiedades que estoy buscando? En concreto, quiero encontrar valores que volverán similares a los siguientes:

 adb shell getprop | grep dolby 

El comando 'grep dolby' de la shell devuelve esto:

 [audio.dolby.ds2.enabled]: [true] [dolby.audio.sink.info]: [headset] [dolby.ds.dialogenhancer.state]: [on] [dolby.ds.graphiceq.state]: [off] [dolby.ds.hpvirtualizer.state]: [off] [dolby.ds.intelligenteq.preset]: [Off] [dolby.ds.intelligenteq.state]: [off] [dolby.ds.platform]: [qcom] [dolby.ds.profile.name]: [Movie] [dolby.ds.spkvirtualizer.state]: [off] [dolby.ds.state]: [off] [dolby.ds.volumeleveler.state]: [on] 

Pero quiero acceder a esta información en el código JAVA de Android.

¿Algunas ideas?

System.getProperties () no devuelve las mismas propiedades que getprop.

Para obtener propiedades getprop, intente ejecutar getprop utilizando Runtime.exec () y leer su salida estándar.

En caso de que alguien quisiera saber mi solución … con la ayuda de George terminé usando esto:

 private String propReader() { Process process = null; try { process = new ProcessBuilder().command("/system/bin/getprop") .redirectErrorStream(true).start(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } InputStream in = process.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); StringBuilder log = new StringBuilder(); String line; try { while ((line = bufferedReader.readLine()) != null) { if (line.contains("dolby")) log.append(line + "\n"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(in); process.destroy(); return log.toString(); } 

Limpié la solución de TMont y la hice más genérica (parámetro añadido para propertyName):

 import android.util.Log; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SystemProperties { private static String GETPROP_EXECUTABLE_PATH = "/system/bin/getprop"; private static String TAG = "MyApp"; public static String read(String propName) { Process process = null; BufferedReader bufferedReader = null; try { process = new ProcessBuilder().command(GETPROP_EXECUTABLE_PATH, propName).redirectErrorStream(true).start(); bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = bufferedReader.readLine(); if (line == null){ line = ""; //prop not set } Log.i(TAG,"read System Property: " + propName + "=" + line); return line; } catch (Exception e) { Log.e(TAG,"Failed to read System Property " + propName,e); return ""; } finally{ if (bufferedReader != null){ try { bufferedReader.close(); } catch (IOException e) {} } if (process != null){ process.destroy(); } } } } 
  • APV lector pdf. Problemas de instalación, descompresión y biblioteca nativa
  • Comandos ADB de Android para obtener las propiedades del dispositivo
  • ¿Cómo conceder permiso para la aplicación que se descarga desde la tienda de juegos?
  • Utilizar shell de adb de android para devolver una actividad
  • Android 2.3: Sistema de archivos de sólo lectura pegado
  • ¿Cómo probar la conexión wifi vía adb?
  • Cómo vaciar (borrar) el búfer logcat en Android
  • No se puede ejecutar el archivo ejecutable desde el shell de adb
  • Adb: Buscar PID desde el shell de anuncios
  • Ejecutar Python en el terminal Android
  • ¿Por qué el comando SQLite 3 que usa la shell ADB de Android devuelve "permiso denegado"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.