2009-10-10 14 views
8

मेरे पास मेरे ऐप में एक स्वचालित बग रिपोर्टिंग सुविधा है जिसमें डीबगिंग के लिए उपयोगी जानकारी शामिल है।रोम प्रदाता कौन है यह पता लगाने के लिए कैसे?

एक चीज जिसे मैं शामिल करना चाहता हूं वह रोम प्रदाता है। विशेष रूप से मैं जानना चाहता हूं कि उपयोगकर्ता कस्टम रोम चला रहा है और कौन सा, संस्करण संख्या के साथ भी।

कोई भी विचार प्रोग्रामेटिक रूप से इस जानकारी को कैसे पुनर्प्राप्त करें?

--- Quintin से लिया (नीचे देखें)

http://code.google.com/p/cyanogen-updater/source/browse/trunk/src/cmupdaterapp/utils/SysUtils.java#19:

public static String getReadableModVersion() { 
    String modVer = getSystemProperty(Constants.SYS_PROP_MOD_VERSION); 
    return (modVer == null || modVer.length() == 0 ? "Unknown" : modVer); 
} 

जिससे निरंतर यह है:

public static final String SYS_PROP_MOD_VERSION = "ro.modversion"; 

और यहाँ है 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; 
} 

कोई भी सीएम रॉम वाला कोई भी मेरे लिए यह चला सकता है?

बीटीडब्ल्यू। सावधान, यह जीपीएल कोड है। मैं इसका उपयोग नहीं कर सकता। कोई आसान या गैर-जीपीएल तरीका?

उत्तर

4

Cyanogen-Updater प्रोजेक्ट में कोड है जिसमें यह कार्यक्षमता है, हालांकि मुझे लगता है कि रोम की जानकारी रोम डेवलपर द्वारा प्रदान की गई प्रोप फ़ाइल द्वारा प्रदान की जाती है, इसलिए मुझे यकीन नहीं है कि यह सार्वभौमिक रूप से काम करेगा या नहीं। मैंने पूरी तरह से इसकी जांच नहीं की है, लेकिन आप स्रोत को देख सकते हैं और इसे समझ सकते हैं।

+0

मुझे एक नज़र थी। http://code.google.com/p/cyanogen-updater/source/browse/trunk/src/cmupdaterapp/utils/SysUtils.java#19 सार्वजनिक स्थैतिक स्ट्रिंग getReadableModVersion() { स्ट्रिंग modVer = getSystemProperty (स्थिरांक।SYS_PROP_MOD_VERSION); वापसी (modVer == null || modVer.length() == 0? "अज्ञात": modVer); } जहां निरंतर यह है: सार्वजनिक स्थैतिक अंतिम स्ट्रिंग SYS_PROP_MOD_VERSION = "ro.modversion"; क्या आप साइनोजन चलाते हैं? क्या आप इसे मेरे लिए निष्पादित कर सकते हैं और मुझे परिणाम बता सकते हैं? –

+0

टिप्पणियों में कोई स्वरूपण नहीं है? जो भी मैंने इसे शीर्ष पर भी रखा है। –

+0

हां मेरे पास उनके रोम का एक संस्करण चल रहा है, और मेरा परिणाम "साइननोजेड-4.0.4" है, हालांकि जब एमुलेटर के माध्यम से आधिकारिक एसडीके निर्माण पर चलता है तो मुझे "अज्ञात" मिलता है। 'Ro.modversion' build.prop फ़ाइल में /system/build.prop –

5

मुझे नहीं पता कि प्रदाता का स्पष्ट संकेतक है, लेकिन आप /proc/version की सामग्री का निरीक्षण कर सकते हैं।

लिनक्स संस्करण 2.6.29.6-CM4 (छाया @ toxygen) (जीसीसी संस्करण 4.4.0 (जीसीसी)) # 8 की जगह ले लेना शुक्र अगस्त 28 20:30:25 EDT 2009: यहाँ CyanogenMod 4.0.4 के लिए उत्पादन है

यहाँ संकेत "CM4" प्रत्यय है, जो (मेरा मानना ​​है कि) (, के साथ साथ विशिष्ट user @ host सा कम स्पष्ट यद्यपि) CyanogenMod 4 के लिए खड़ा है।

लिनक्स संस्करण 2.6.27-00110-g132305e ([email protected]) (जीसीसी संस्करण 4.2.1) # 6 सोम 2 फरवरी: तुलना के लिए, यहाँ चल एमुलेटर 1.6 के लिए संस्करण है 12:47:38 पीएसटी 200

आप android.os.Build के मान भी देख सकते हैं। Build.TYPE पर अधिक जानकारी नहीं है, लेकिन मुझे लगता है कि आधिकारिक निर्माण के लिए "eng" खड़ा है, और "उपयोगकर्ता" टाइप घर के बने निर्माण के लिए है, ताकि यह भी उपयोगी हो सके।

+0

मुझे लगता है कि मैं सिस्टम प्रॉपर्टी के साथ दूसरे दृष्टिकोण के लिए जाऊंगा। लेकिन फिर भी धन्यवाद। बीटीडब्ल्यू। मेरा मानना ​​है कि वर्तमान, आधिकारिक, एचटीसी नायक रोम एक ईएनजी निर्माण चलाता है। –

3

कस्टम रोम्स Build.DISPLAY को ओवरराइट करते हैं। मैंने अभी चेकक्रोम REVOHD V6 के साथ जांच की है और यह काम किया है।

संबंधित मुद्दे