Mam automatyczną funkcję zgłaszania błędów w mojej aplikacji, która zawiera przydatne informacje do debugowania.Jak dowiedzieć się, kto jest dostawcą ROM?
Jedna rzecz, którą chciałbym dołączyć to dostawca ROM. W szczególności chciałbym wiedzieć, czy użytkownik uruchamia niestandardową ROM, a najlepiej nawet z numerem wersji.
Każdy pomysł, jak pobierać te informacje programowo?
--- Zrobione z Quintin (patrz niżej)
public static String getReadableModVersion() {
String modVer = getSystemProperty(Constants.SYS_PROP_MOD_VERSION);
return (modVer == null || modVer.length() == 0 ? "Unknown" : modVer);
}
Przy czym stała to:
public static final String SYS_PROP_MOD_VERSION = "ro.modversion";
A oto getSystemProperty();
public static String getSystemProperty(String propName){
String line;
BufferedReader input = null;
try
{
Process p = Runtime.getRuntime().exec("getprop " + propName);
input = new BufferedReader(new InputStreamReader(p.getInputStream()), 1024);
line = input.readLine();
input.close();
}
catch (IOException ex)
{
Log.e(TAG, "Unable to read sysprop " + propName, ex);
return null;
}
finally
{
if(input != null)
{
try
{
input.close();
}
catch (IOException e)
{
Log.e(TAG, "Exception while closing InputStream", e);
}
}
}
return line;
}
Czy ktokolwiek z CM ROM może uruchomić to dla mnie?
Przy okazji. Ostrożnie, to jest kod GPL. Ja nie mogę tego użyć. Czy jest to łatwiejsza droga niż GPL?
Spojrzałem. http://code.google.com/p/cyanogen-updater/source/browse/trunk/src/cmupdaterapp/utils/SysUtils.java#19 public static getReadableModVersion String() { String ModVer = getSystemProperty (Stałe.SYS_PROP_MOD_VERSION); return (modVer == null || modVer.length() == 0? "Unknown": modVer); } Stała to: public static final String String SYS_PROP_MOD_VERSION = "ro.modversion"; Czy używasz Cyanogen? Czy mógłbyś to dla mnie zrobić i powiedzieć mi o wyniku? –
Brak formatowania w komentarzach? Niezależnie od tego, co umieściłem to również na górze. –
Tak, mam wersję jego romu, a moim wynikiem jest "CyanogenMod-4.0.4", jednak kiedy uruchamiam oficjalną wersję SDK przez emulator, otrzymuję komunikat "Unknown". 'Ro.modversion' jest ustawiony w pliku build.prop na /system/build.prop –