Sunday, April 29, 2012

Re: [android-developers] Reading ROM version through code

Hey guys... 

This code works... although I'm not that keen on it, since it is definitely not part of the jars available. But it works:

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView arch = (TextView)findViewById(R.id.arch);
        TextView name = (TextView)findViewById(R.id.name);
        TextView version = (TextView)findViewById(R.id.version);
        TextView roversion = (TextView)findViewById(R.id.roversion);
        TextView rofingerprint = (TextView)findViewById(R.id.rofingerprint);
        arch.setText("os.arch: " + System.getProperty("os.arch"));
        name.setText("os.name: " + System.getProperty("os.name"));
        version.setText("os.version: " + System.getProperty("os.version"));
        roversion.setText("ro.product.version: " + getProp("ro.product.version", "Not found"));
        rofingerprint.setText("ro.build.fingerprint: " + getProp("ro.build.fingerprint", "Not found"));

    }

    private String getProp(String prop, String defaultVal)
    {
        String line = defaultVal;
        try {
            Process ifc = Runtime.getRuntime().exec("getprop " + prop);
            BufferedReader bis = new BufferedReader(new InputStreamReader(ifc.getInputStream()));
            line = bis.readLine();
            ifc.destroy();
        } catch (java.io.IOException e) {
        }

        return line;
    }

This returns:

TextView arch = (TextView)findViewById(R.id.arch);
TextView name = (TextView)findViewById(R.id.name);
TextView version = (TextView)findViewById(R.id.version);
TextView roversion = (TextView)findViewById(R.id.roversion);
TextView rofingerprint = (TextView)findViewById(R.id.rofingerprint);
arch.setText("os.arch: " + System.getProperty("os.arch"));
name.setText("os.name: " + System.getProperty("os.name"));
version.setText("os.version: " + System.getProperty("os.version"));
roversion.setText("ro.product.version: " + System.getProperty("ro.product.version"));
rofingerprint.setText("ro.build.fingerprint: " + System.getProperty("ro.build.fingerprint"));

Which gave me this output on my HTC Legend:
os.arch : armv6l
os.name: Linux
os.version: 2.6.32.17-g30929af
ro.product.version: 3.15.405.3
ro.build.fingerprint: htc_wwe/htc_legend/legend/legend:2.2/FRF91/291292:user/release-keys


On Sunday, April 29, 2012 12:30:36 PM UTC+2, JP wrote:
I tried using this code:

TextView arch = (TextView)findViewById(R.id.arch);
TextView name = (TextView)findViewById(R.id.name);
TextView version = (TextView)findViewById(R.id.version);
TextView roversion = (TextView)findViewById(R.id.roversion);
TextView rofingerprint = (TextView)findViewById(R.id.rofingerprint);
arch.setText("os.arch: " + System.getProperty("os.arch"));
name.setText("os.name: " + System.getProperty("os.name"));
version.setText("os.version: " + System.getProperty("os.version"));
roversion.setText("ro.product.version: " + System.getProperty("ro.product.version"));
rofingerprint.setText("ro.build.fingerprint: " + System.getProperty("ro.build.fingerprint"));

Which gave me this output on my HTC Legend:
os.arch : armv6l
os.name: Linux
os.version: 2.6.32.17-g30929af
ro.product.version: null
ro.build.fingerprint: null

So this didn't work either unfortunately... I'll keep looking!

JP



On Monday, April 23, 2012 4:53:25 PM UTC+2, Chris Stratton wrote:
On Monday, April 23, 2012 7:54:50 AM UTC-4, JP wrote:
Didn't find anything unfortunately. Is this really impossible to do?

Open an adb shell, type "getprop" and look at the result.

Some entries which may be of interest:
ro.build.fingerprint
ro.build.version.*
ro.product.version
 
These should be readable by apps; what I don't know off the top of my head is which (if any) are "stable API's" and which are private and thus subject to change without notice.

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment