User Tools

Site Tools


Sidebar

Privacy Policy

News

Version 2.50 is out since Jan 1st 2022


Frequently Asked Questions


Namespaces

Note for contributors

If you wish to create a new page in the DroidScript wiki, please click on the most appropriate namespace above and follow the notes for contributors there.

Because of spam, it has been necessary to add a CAPTCHA to the registration form and the save option for editing pages. You will not need to prove you are human if you are logged in, so please register.

Please feel free to improve any existing page, as well as adding new pages to increase the sum of public knowledge about DroidScript.

Formatting Syntax

sample_code:get_device_specs

This is an old revision of the document!


Table of Contents

Get Device Specs

I have been asked more than once lately about the device on which I am testing code.

In order to produce some of the answers simply, I wrote a simple function getDeviceSpecs(). It occurred to me that this may be useful to others when reporting problems on the discussion groups.

Sample code

The sample app uses this function to display some specs and copy them to the clipboard, ready to pass elsewhere.

getDeviceSpecs.js
var allBuilds = JSON.parse('{"1":{"level":1,"codename":"(no code name)","version":"1.0"}, ' + '"2":{"level":2,"codename":"(no code name)","version":"1.1"} , ' + '"3":{"level":3,"codename":"Cupcake","version":"1.5"}, ' + '"4":{"level":4,"codename":"Donut","version":"1.6"}, ' + '"5":{"level":5,"codename":"Eclair","version":"2.0"},  ' + '"6":{"level":6,"codename":"Eclair","version":"2.0.1"}, ' +  '"7":{"level":7,"codename":"Eclair","version":"2.1"}, ' +  ' "8":{"level":8,"codename":"Froyo","version":"2.2.x"}, ' +  ' "9":{"level":9,"codename":"Gingerbread","version":"2.3 - 2.3.2"}, ' +  ' "10":{"level":10,"codename":"Gingerbread","version":"2.3.3 - 2.3.7"}, ' +  ' "11":{"level":11,"codename":"Honeycomb","version":"3.0"}, ' +  ' "12":{"level":12,"codename":"Honeycomb","version":"3.1"}, ' +  ' "13":{"level":13,"codename":"Honeycomb","version":"3.2.x"}, ' +  ' "14":{"level":14,"codename":"Ice Cream Sandwich","version":"4.0.1 - 4.0.2"}, ' +  ' "15":{"level":15,"codename":"Ice Cream Sandwich","version":"4.0.3 - 4.0.4"}, ' +  ' "16":{"level":16,"codename":"Jelly Bean","version":"4.1.x"}, ' +  ' "17":{"level":17,"codename":"Jelly Bean","version":"4.2.x"}, ' +  ' "18":{"level":18,"codename":"Jelly Bean","version":"4.3.x"}, ' +  ' "19":{"level":19,"codename":"KitKat","version":"4.4 - 4.4.4"}, ' +  ' "20":{"level":20,"codename":"K or L","version":"4 or 5"}, ' +  ' "21":{"level":21,"codename":"Lollipop","version":"5.0"}, ' +  ' "22":{"level":22,"codename":"Lollipop","version":"5.1"} ' +  ' }')
 
var osObj = allBuilds[app.GetOSVersion()]
try
{
    var osInfo = "Android "+ osObj.version +" (" +
     osObj.codename + ")  API level " + 
     osObj.level
}
catch(err)
{
    var osInfo = app.GetOSVersion();
}
 
//Called when application is started.
function OnStart()
{
 
    //Create a layout with objects vertically centered.
    lay = app.CreateLayout( "linear", "VCenter,FillXY" );    
 
    //Create a button and add it to layout.
    btn = app.CreateButton( "Test" );
    btn.SetOnTouch(btn_OnTouch);
    lay.AddChild( btn );
    
    //Add layout to app.    
    app.AddLayout( lay );
}
 
function btn_OnTouch()
{
   var tst = getDeviceSpecs();
   app.Alert(tst);
   app.SetClipboardText(tst);
}
 
function getDeviceSpecs()
{
  var os =app.GetOSVersion();
  var model = app.GetModel();
  var tablet = app.IsTablet();
  var fromapk = ( app.GetAppPath() == "/Assets" ) 
  var dsversion = (fromapk?"version unknown":app.GetVersion());
//Get screen dimensions. 
  var sw = app.GetScreenWidth(); 
  var sh = app.GetScreenHeight(); 
  var dens = app.GetScreenDensity();
//Get display dimensions. 
  var dw = app.GetDisplayWidth(); 
  var dh = app.GetDisplayHeight();
//Get drive details
  var intfld = app.GetInternalFolder();
  var extfld = app.GetExternalFolder();
  var intspace = app.GetFreeSpace("internal");
  var extspace = app.GetFreeSpace("external");
  
 
//specs are formatted as a comment so we can paste
//them somewhere convenient
  var s = "/*\n"+
        "os=" + osInfo+"\n"+
        "tablet="+ tablet + "\n"+
        "model=" + model + "\n" +
        "DroidScript=" + dsversion + "\n"+
        "screen width="+ sw + "\n" + 
        "screen height="+ sh + "\n" + 
        "screen density="+ dens + "\n" + 
        "display width="+ dw + "\n" + 
        "display height="+ dh +"\n" +
        "internal folder=" + intfld + "\n" +
        "external folder=" + extfld + "\n" +
        "int free space=" + intspace + "\n" +
        "ext free space=" + extspace + "\n" +
     "country code="+app.GetCountryCode() +"\n"+
"country="+app.GetCountry()+"\n"+
     "language code="+app.GetLanguageCode() +"\n"+
"language="+app.GetLanguage()+"\n"+
        "*/";
   return(s);
}

Notes

The function getDeviceSpecs at the end of the code, can be pasted independently into a project an the string returned can be used however you see fit.

sample_code/get_device_specs.1428274972.txt.gz · Last modified: 2015/04/06 07:02 (external edit)