The Things library provides access to hardware features of Android Things platforms.
The library supports GPIO and Serial communication.
I2C with JavaObject: https://www.b4x.com/android/forum/threads/things-i2c.75504/#post-479173
Follow this tutorial to get started: https://www.b4x.com/android/forum/posts/474952/
Using it is simple:
1. Add a reference only dependency:
2. Initialize a PeripheralManager object.
3. Open the pin with pm.OpenGpio.
You can see the pins mapping here: https://developer.android.com/things/hardware/raspberrypi-io.html
4. Set the pin direction (input or output).
5. Add a listener if needed.
6. Add the following code to the manifest editor:
If you are getting an error similar to:
java.lang.SecurityException: Caller lacks required permission com.google.android.things.permission.USE_PERIPHERAL_IO
Then reboot the device. Your app should then have this permission.
Updates
1.10 - Based on android things v0.8.
Instructions were updated:
- New permission to add.
- New #AdditionalJar line.
The library supports GPIO and Serial communication.
I2C with JavaObject: https://www.b4x.com/android/forum/threads/things-i2c.75504/#post-479173
Follow this tutorial to get started: https://www.b4x.com/android/forum/posts/474952/
Using it is simple:
1. Add a reference only dependency:
B4X:
#AdditionalJar: androidthings, ReferenceOnly
2. Initialize a PeripheralManager object.
3. Open the pin with pm.OpenGpio.
You can see the pins mapping here: https://developer.android.com/things/hardware/raspberrypi-io.html
4. Set the pin direction (input or output).
5. Add a listener if needed.
B4X:
#AdditionalJar: androidthings, ReferenceOnly
Sub Process_Globals
Private pm As PeripheralManager
Private pin4 As Gpio 'led
Private pin17 As Gpio 'button
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
pm.Initialize
Log(pm.GpioList)
pin4 = pm.OpenGpio("BCM4")
pin4.Direction = pin4.DIRECTION_OUT_INITIALLY_LOW
pin17 = pm.OpenGpio("BCM17")
pin17.Direction = pin17.DIRECTION_IN
pin17.AddListener("pin17")
End If
Activity.LoadLayout("1")
End Sub
Sub Pin17_StateChanged (Value As Boolean)
Dim clr As Int
If Value Then clr = 0xFF54EF72 Else clr = 0xFFC52D56
Activity.Color = clr
End Sub
Sub ToggleButton1_CheckedChange(Checked As Boolean)
pin4.Value = Checked 'turn on or off the led
End Sub
6. Add the following code to the manifest editor:
B4X:
AddApplicationText(<uses-library android:name="com.google.android.things"/>)
'Launch activity automatically on boot (can remove if not needed)
AddActivityText(Main,
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.IOT_LAUNCHER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
)
AddPermission(com.google.android.things.permission.USE_PERIPHERAL_IO)
If you are getting an error similar to:
java.lang.SecurityException: Caller lacks required permission com.google.android.things.permission.USE_PERIPHERAL_IO
Then reboot the device. Your app should then have this permission.
Updates
1.10 - Based on android things v0.8.
Instructions were updated:
- New permission to add.
- New #AdditionalJar line.
Attachments
Last edited: