'Class AJBuild
#IF B4A
Private Sub Class_Globals
Private this As AJBuild = Me
Private r As Reflector
Public VERSION_CODES As Map
'
Public Const BASE = 1 As Int
Public Const BASE_1_1 = 2 As Int
Public Const CUPCAKE = 3 As Int
Public Const CUR_DEVELOPMENT = 10000 As Int
Public Const DONUT = 4 As Int
Public Const ECLAIR = 5 As Int
Public Const ECLAIR_0_1 = 6 As Int
Public Const ECLAIR_MR1 = 7 As Int
Public Const FROYO = 8 As Int
Public Const GINGERBREAD = 9 As Int
Public Const GINGERBREAD_MR1 = 10 As Int
Public Const HONEYCOMB = 11 As Int
Public Const HONEYCOMB_MR1 = 12 As Int
Public Const HONEYCOMB_MR2 = 13 As Int
Public Const ICE_CREAM_SANDWICH = 14 As Int
Public Const ICE_CREAM_SANDWICH_MR1 = 15 As Int
Public Const JELLY_BEAN = 16 As Int
Public Const JELLY_BEAN_MR1 = 17 As Int
Public Const JELLY_BEAN_MR2 = 18 As Int
Public Const KITKAT = 19 As Int
Public Const KITKAT_WATCH = 20 As Int
Public Const LOLLIPOP = 21 As Int
Public Const LOLLIPOP_MR1 = 22 As Int
Public Const M = 23 As Int
'
Private device_api_level_ As Int
End Sub
'Initalize AJBuild
'AJBuild retrieves the device running SDK level.
'More details about Platform Releases and SDK Levels <a href="http://developer.android.com/reference/android/os/Build.VERSION_CODES.html">here</a> and <a href ="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels">here</a>
Public Sub Initialize
VERSION_CODES.Initialize
VERSION_CODES.Put(BASE, "BASE")
VERSION_CODES.Put(BASE_1_1, "BASE_1_1")
VERSION_CODES.Put(CUPCAKE, "CUPCAKE")
VERSION_CODES.Put(CUR_DEVELOPMENT, "CUR_DEVELOPMENT")
VERSION_CODES.Put(DONUT, "DONUT")
VERSION_CODES.Put(ECLAIR, "ECLAIR")
VERSION_CODES.Put(ECLAIR_0_1, "ECLAIR_0_1")
VERSION_CODES.Put(ECLAIR_MR1, "ECLAIR_MR1")
VERSION_CODES.Put(FROYO, "FROYO")
VERSION_CODES.Put(GINGERBREAD, "GINGERBREAD")
VERSION_CODES.Put(GINGERBREAD_MR1, "GINGERBREAD_MR1")
VERSION_CODES.Put(HONEYCOMB, "HONEYCOMB")
VERSION_CODES.Put(HONEYCOMB_MR1, "HONEYCOMB_MR1")
VERSION_CODES.Put(HONEYCOMB_MR2, "HONEYCOMB_MR2")
VERSION_CODES.Put(ICE_CREAM_SANDWICH, "ICE_CREAM_SANDWICH")
VERSION_CODES.Put(ICE_CREAM_SANDWICH_MR1, "ICE_CREAM_SANDWICH_MR1")
VERSION_CODES.Put(JELLY_BEAN, "JELLY_BEAN")
VERSION_CODES.Put(JELLY_BEAN_MR1, "JELLY_BEAN_MR1")
VERSION_CODES.Put(JELLY_BEAN_MR2, "JELLY_BEAN_MR2")
VERSION_CODES.Put(KITKAT, "KITKAT")
VERSION_CODES.Put(KITKAT_WATCH, "KITKAT_WATCH")
VERSION_CODES.Put(LOLLIPOP, "LOLLIPOP")
VERSION_CODES.Put(LOLLIPOP_MR1, "LOLLIPOP_MR1")
VERSION_CODES.Put(M, "M")
'
this.device_api_level_ = SDK_INT
End Sub
#Region NATIVE METHOD CALLS
'The current development codename, or the string "REL" if this is a release build.
'java static field: CODENAME
Public Sub CODENAME As String
Return r.GetStaticField("android.os.Build$VERSION", "CODENAME")
End Sub
'The user-visible version string. E.g., "1.0" or "3.4b5".
'In other words, the platform version.
'java static field: RELEASE
Public Sub RELEASE As String
Return r.GetStaticField("android.os.Build$VERSION", "RELEASE")
End Sub
'The user-visible SDK version of the framework; its possible values are defined in Build.VERSION_CODES.
'java static field: SDK_INT or SDK if API Level < 4
Public Sub SDK_INT As Int
Try
Return r.GetStaticField("android.os.Build$VERSION", "SDK_INT")
Catch
Return r.GetStaticField("android.os.Build$VERSION", "SDK")
End Try
End Sub
#End Region NATIVE METHOD CALLS
#Region SUGAR
Public Sub getDEVICE_API_LEVEL As Int
Return this.device_api_level_
End Sub
Public Sub getDEVICE_API_NAME As String
Return VERSION_CODES.Get(this.device_api_level_)
End Sub
#End Region SUGAR
#Else If B4J
Private Sub Class_Globals
Private r As Reflector
End Sub
Public Sub Initialize
End Sub
'Return the running Java specific version as double
Public Sub JavaVersion As Double
Return r.RunStaticMethod("java.lang.System", "getProperty", _
Array As Object("java.specification.version"), _
Array As String("java.lang.String"))
End Sub
#End If