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

Next revision
Previous revision
sample_code:get_device_specs [2015/01/17 20:39]
stevegarman created
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>
 +// https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels
 +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"}, ' +
 +  ' "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"} ' +
 +  ' }');
  
-//Called when application is started. +var osObj = allBuilds[app.GetOSVersion()
-function OnStart()+try
 { {
-    //Create a layout with objects vertically centered+  var osInfo = "Android " + osObj.version + " (" + 
-    lay = app.CreateLayout( "linear", "VCenter,FillXY" );    +    osObj.codename + " API level " + 
 +    osObj.level 
 +
 +catch(err){var osInfo = app.GetOSVersion();
 + 
 +var lay, txt, scroller 
 +//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 button and add it to layout. 
 +  var btn = app.CreateButton("[fa-copy]", -1, -1, "fontAwesome"); 
 +  btn.SetTextSize( 32 ) 
 +  //btn.SetTextColor("#ffddffff"); 
 +  //btn.SetStyle("#4285F4", "#2265d4", 2, "#999999", 0, 1, "#ff9000"); 
 + 
 +  btn.SetOnTouch(btn_OnTouch); 
 +  lay.AddChild(btn);
  
-    //Create a button and add it to layout+  //Add layout to app    
-    btn = app.CreateButton"Test" ); +  app.AddLayout(lay); 
-    btn.SetOnTouch(btn_OnTouch); +  OnConfig()
-    lay.AddChild( btn ); +
-     +
-    //Add layout to app.     +
-    app.AddLayoutlay );+
 } }
  
-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 getDeviceSpecs()+function getBuilderVersion()
 { {
-  var os =app.GetOSVersion(); +   var msg = "Apk Builder plugin not installed"; 
-  var model = app.GetModel(); +   var path = app.GetPrivateFolder("Plugins") + 
-  var tablet = app.IsTablet(); +      "/apkbuilder/Version.txt" 
-//Get screen dimensions.  +   if(app.FileExists(path)) 
-  var sw = app.GetScreenWidth();  +   { 
-  var sh = app.GetScreenHeight();  +      msg = "Apk Builder version " + app.ReadFile( path ) 
-  var dens = app.GetScreenDensity(); +   } 
-//Get display dimensions.  +   else if(app.IsAPK()) 
-  var dw = app.GetDisplayWidth();  +   { 
-  var dh = app.GetDisplayHeight();+      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); 
 +}
  
-//specs are formatted as a comment so we can paste +function storageScoped() { 
-//them somewhere convenient +   return app.IsScoped()?"Scoped":"Traditional"
-  var s = "/*\nos=+ os+"\n"+
-        "tablet="+ tablet + "\n"+
-        "model=" + model + "\n" + +
-        "screen width="+ sw + "\n" +  +
-        "screen height="+ sh + "\n" +  +
-        "screen density="+ dens + "\n" +  +
-        "display width="+ dw + "\n" +  +
-        "display height="+ dh +"\n*/";  +
-   return(s);+
 } }
  
 +function OnConfig()
 +{
 +//called when screen rotates
 +//also called at startup to fix Chromebook display size anomaly
 + var fixwid=lay.GetAbsWidth()/app.GetDisplayWidth()
 + var fixhigh=lay.GetAbsHeight()/app.GetDisplayHeight()
 + var wid=1, high=0.8
 + if(fixwid<1) wid *= fixwid // chromebook not using full width
 + if(fixhigh<1) high *= fixhigh // or height
 + scroller.SetSize( wid,high )
 + txt.SetSize( wid, high  )
 +}
 </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.1421527185.txt.gz · Last modified: 2015/01/18 04:39 (external edit)