User Tools

Site Tools


sample_code:get_device_specs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sample_code:get_device_specs [2015/12/18 21:50]
administrator remove confusing comment
sample_code:get_device_specs [2022/04/25 17:48] (current)
stevegarman [Sample code] updated
Line 8: Line 8:
  
 <code JavaScript getDeviceSpecs.js> <code JavaScript getDeviceSpecs.js>
-var allBuilds = JSON.parse('{'+// https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels 
-'"1":{"level":1,"codename":"(no code name)","version":"1.0"}, ' + +var allBuilds = JSON.parse('{'
-'"2":{"level":2,"codename":"(no code name)","version":"1.1"} , ' + +  '"1":{"level":1,"codename":"(no code name)","version":"1.0"}, ' + 
-'"3":{"level":3,"codename":"Cupcake","version":"1.5"}, ' + +  '"2":{"level":2,"codename":"(no code name)","version":"1.1"} , ' + 
-'"4":{"level":4,"codename":"Donut","version":"1.6"}, ' + +  '"3":{"level":3,"codename":"Cupcake","version":"1.5"}, ' + 
-'"5":{"level":5,"codename":"Eclair","version":"2.0"},  ' + +  '"4":{"level":4,"codename":"Donut","version":"1.6"}, ' + 
-'"6":{"level":6,"codename":"Eclair","version":"2.0.1"}, ' +  +  '"5":{"level":5,"codename":"Eclair","version":"2.0"},  ' + 
-'"7":{"level":7,"codename":"Eclair","version":"2.1"}, ' +  +  '"6":{"level":6,"codename":"Eclair","version":"2.0.1"}, ' + 
-' "8":{"level":8,"codename":"Froyo","version":"2.2.x"}, ' +  +  '"7":{"level":7,"codename":"Eclair","version":"2.1"}, ' + 
-' "9":{"level":9,"codename":"Gingerbread","version":"2.- 2.3.2"}, ' +  +  ' "8":{"level":8,"codename":"Froyo","version":"2.2.x"}, ' + 
-' "10":{"level":10,"codename":"Gingerbread","version":"2.3.- 2.3.7"}, ' +  +  ' "9":{"level":9,"codename":"Gingerbread","version":"2.- 2.3.2"}, ' + 
-' "11":{"level":11,"codename":"Honeycomb","version":"3.0"}, ' +  +  ' "10":{"level":10,"codename":"Gingerbread","version":"2.3.- 2.3.7"}, ' + 
-' "12":{"level":12,"codename":"Honeycomb","version":"3.1"}, ' +  +  ' "11":{"level":11,"codename":"Honeycomb","version":"3.0"}, ' + 
-' "13":{"level":13,"codename":"Honeycomb","version":"3.2.x"}, ' +  +  ' "12":{"level":12,"codename":"Honeycomb","version":"3.1"}, ' + 
-' "14":{"level":14,"codename":"Ice Cream Sandwich","version":"4.0.- 4.0.2"}, ' +  +  ' "13":{"level":13,"codename":"Honeycomb","version":"3.2.x"}, ' + 
-' "15":{"level":15,"codename":"Ice Cream Sandwich","version":"4.0.- 4.0.4"}, ' +  +  ' "14":{"level":14,"codename":"Ice Cream Sandwich","version":"4.0.- 4.0.2"}, ' + 
-' "16":{"level":16,"codename":"Jelly Bean","version":"4.1.x"}, ' +  +  ' "15":{"level":15,"codename":"Ice Cream Sandwich","version":"4.0.- 4.0.4"}, ' + 
-' "17":{"level":17,"codename":"Jelly Bean","version":"4.2.x"}, ' +  +  ' "16":{"level":16,"codename":"Jelly Bean","version":"4.1.x"}, ' + 
-' "18":{"level":18,"codename":"Jelly Bean","version":"4.3.x"}, ' +  +  ' "17":{"level":17,"codename":"Jelly Bean","version":"4.2.x"}, ' + 
-' "19":{"level":19,"codename":"KitKat","version":"4.- 4.4.4"}, ' +  +  ' "18":{"level":18,"codename":"Jelly Bean","version":"4.3.x"}, ' + 
-' "20":{"level":20,"codename":"K or L","version":"4 or 5"}, ' +  +  ' "19":{"level":19,"codename":"KitKat","version":"4.- 4.4.4"}, ' + 
-' "21":{"level":21,"codename":"Lollipop","version":"5.0"}, ' +  +  ' "20":{"level":20,"codename":"K or L","version":"4 or 5"}, ' + 
-' "22":{"level":22,"codename":"Lollipop","version":"5.1"}, ' +  +  ' "21":{"level":21,"codename":"Lollipop","version":"5.0"}, ' + 
-' "23":{"level":23,"codename":"Marshmallow","version":"6.0"} ' +  +  ' "22":{"level":22,"codename":"Lollipop","version":"5.1"}, ' + 
-' }' );+  ' "23":{"level":23,"codename":"MarshMallow","version":"6.0"}, ' + 
 +  ' "24":{"level":24,"codename":"Nougat","version":"7.0"}, ' + 
 +  ' "25":{"level":25,"codename":"Nougat","version":"7.1"}, ' + 
 +  ' "26":{"level":26,"codename":"Oreo","version":"8.0"}, ' + 
 +  ' "27":{"level":27,"codename":"Oreo","version":"8.1"}, ' + 
 +  ' "28":{"level":28,"codename":"Pie","version":"9"}, ' + 
 +  ' "29":{"level":29,"codename":"Q","version":"10"}, ' + 
 +  ' "30":{"level":30,"codename":"R","version":"11"}, ' + 
 +  ' "31":{"level":31,"codename":"S","version":"12"}, ' + 
 +  ' "32":{"level":32,"codename":"S_V2","version":"12"} ' + 
 +  ' }');
  
-var osObj = allBuilds[app.GetOSVersion()]+var osObj = allBuilds[app.GetOSVersion()]
 try try
 { {
-    var osInfo = "Android "+ osObj.version +" (" + +  var osInfo = "Android " + osObj.version + " (" + 
-     osObj.codename + " API level " +  +    osObj.codename + " API level " + 
-     osObj.level +    osObj.level
-+
-catch(err) +
-+
-    var osInfo = app.GetOSVersion();+
 } }
 +catch(err){var osInfo = app.GetOSVersion();}
  
-//Called when application is started+var lay, txt, scroller 
-function OnStart()+//Called when application is started
 +function OnStart()
 { {
 +  /*
 +  if(! app.GetNotifyId())
 +  {
 +    var notify = app.CreateNotification(  );
 +    notify.SetSmallImage( "Img/getDeviceSpecs.png" );
 +    notify.SetLargeImage( "Img/getDeviceSpecs.png" );
 +    notify.SetMessage( "",app.GetAppName(),"" );
 +    notify.Notify( app.GetAppName() );
 +  }
 +  */
 +  //Create a layout with objects vertically centered.
 +  lay = app.CreateLayout("linear", "VCenter,FillXY");
 +  
 +  // create viewr for specs
 +  scroller = app.CreateScroller(1, 0.8);
 +  var specs = getDeviceSpecs();
 +  txt = app.CreateText(specs, 1, 0.8, "left,multiLine");
 +  txt.SetPadding(0.02, 0.01, 0.02, 0.01);
 +  //txt.SetTextColor("#ff446666");
 +  scroller.AddChild(txt);
 +  lay.AddChild(scroller);
  
-    //Create a layout with objects vertically centered+  //Create a button and add it to layout
-    var lay = app.CreateLayout( "linear", "VCenter,FillXY" );    +  var btn = app.CreateButton("[fa-copy]", -1, -1, "fontAwesome"); 
 +  btn.SetTextSize( 32 ) 
 +  //btn.SetTextColor("#ffddffff"); 
 +  //btn.SetStyle("#4285F4""#2265d4", 2, "#999999", 0, 1, "#ff9000");
  
-    //Create a button and add it to layout. +  btn.SetOnTouch(btn_OnTouch); 
-    var btn = app.CreateButton( "Test" ); +  lay.AddChild(btn); 
-    btn.SetOnTouch(btn_OnTouch); + 
-    lay.AddChild( btn ); +  //Add layout to app    
-     +  app.AddLayout(lay); 
-    //Add layout to app    +  OnConfig()
-    app.AddLayout( lay );+
 } }
  
-function btn_OnTouch()+function btn_OnTouch()
 { {
-   var tst = getDeviceSpecs(); +  app.SetClipboardText(txt.GetText( ) ); 
-   app.Alert(tst); +  app.ShowPopup("Copied to clipboard"
-   app.SetClipboardText(tst);+
 + 
 +function getBuilderVersion() 
 +
 +   var msg "Apk Builder plugin not installed"; 
 +   var path = app.GetPrivateFolder("Plugins") + 
 +      "/apkbuilder/Version.txt" 
 +   if(app.FileExists(path)) 
 +   { 
 +      msg = "Apk Builder version " + app.ReadFile( path ) 
 +   } 
 +   else if(app.IsAPK()) 
 +   { 
 +      msg = "APK built with " + app.GetDSVersion().toFixed(2); 
 +   } 
 +   return msg 
 +
 +function getDeviceSpecs() 
 +
 +  var os = app.GetOSVersion(); 
 +  var model = app.GetModel(); 
 +  var tablet = app.IsTablet(); 
 +  var fromapk = app.IsAPK(); 
 +  var isChrome = app.IsChrome(); 
 +  var isPrem = app.IsPremium() 
 +  var isTV = app.IsTV(); 
 +  var dsversion = app.GetDSVersion().toFixed(2); 
 +  //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"); 
 +  var mem = app.GetMemoryInfo().total.toLocaleString("en-US"); 
 +   
 +  //specs are formatted as a comment so we can paste 
 +  //them somewhere convenient 
 +  try 
 +  { 
 +    os = osInfo; 
 +  } 
 +  catch(err) 
 +  {} 
 +  var s = "/*\n"
 +    "os=" + os + "\n"
 +    getBuilderVersion() + "\n"
 +    "tablet=" + tablet + "\n"
 +    "model=" + model + "\n"
 +    "isChrome=" + isChrome + "\n"
 +    "isTV=" + isTV +"\n"
 +    "DroidScript=" + dsversion + "\n"
 +    "Storage access=" + storageScoped() + "\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"
 +    "memory=" + mem +"\n"
 +    "premium=" + isPrem +"\n"
 +    "country code=" + app.GetCountryCode() + "\n"
 +    "country=" + app.GetCountry() + "\n"
 +    "language code=" + app.GetLanguageCode() + "\n"
 +    "language=" + app.GetLanguage() + "\n"
 +    "wifi=" + app.GetIPAddress() + "\n"
 +    "userAgent='" + navigator.userAgent + "'\n"
 +    "*/"; 
 +  return(s); 
 +
 + 
 +function storageScoped() { 
 +   return app.IsScoped()?"Scoped":"Traditional"
 } }
  
-function getDeviceSpecs()+function OnConfig()
 { {
-  var os =app.GetOSVersion(); +//called when screen rotates 
-  var model = app.GetModel(); +//also called at startup to fix Chromebook display size anomaly 
-  var tablet = app.IsTablet(); +  var fixwid=lay.GetAbsWidth()/app.GetDisplayWidth() 
-  var fromapk = ( app.GetAppPath() == "/Assets" )  +  var fixhigh=lay.GetAbsHeight()/app.GetDisplayHeight() 
-  var dsversion = app.GetDSVersion(); +  var wid=1, high=0.8 
-//Get screen dimensions.  +  if(fixwid<1wid *fixwid // chromebook not using full width 
-  var sw app.GetScreenWidth();  +  if(fixhigh<1high *fixhigh /or height 
-  var sh = app.GetScreenHeight();  +  scroller.SetSizewid,high 
-  var dens = app.GetScreenDensity(); +  txt.SetSizewid, high  )
-//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 +
-  try {os=osInfo;+
-  catch(err){} +
-  var s "/*\n"+ +
-        "os=" + os+"\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);+
 } }
 </code> </code>
 ===== Notes ===== ===== 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. 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.1450475431.txt.gz · Last modified: 2015/12/19 05:50 (external edit)