Difference between revisions of "LazDeviceAPIs"

From Lazarus wiki
m (LazDeviceAPISs moved to LazDeviceAPIs: typo)
m (Text replace - "delphi>" to "syntaxhighlight>")
Line 7: Line 7:
 
The Accelerometer is very easy to use. Just call Accelerometer.StartReadingAccelerometerData to start listening to the accelerometer sensor and call Accelerometer.StopReadingAccelerometerData to stop listening to it:
 
The Accelerometer is very easy to use. Just call Accelerometer.StartReadingAccelerometerData to start listening to the accelerometer sensor and call Accelerometer.StopReadingAccelerometerData to stop listening to it:
  
<delphi>
+
<syntaxhighlight>
 
uses lazdeviceapis;
 
uses lazdeviceapis;
  
Line 27: Line 27:
 
   DebugLn(labelSensorData.Caption);
 
   DebugLn(labelSensorData.Caption);
 
end;
 
end;
</delphi>
+
</syntaxhighlight>
  
 
===Android Permissions===
 
===Android Permissions===

Revision as of 15:39, 24 March 2012

LazDeviceAPIs is a LCL unit which offers an interface to various hardware devices, such as the accelerometer, GPS positioning, SMS sending, etc. It is mostly designed for smartphone/mobile platforms, but it might eventually be ported to desktops too.

Introduction

LazDeviceAPIs was modeled to be similar to other APIs for hardware devices from the LCL. Historically we had two hardware global objects: Mouse and Screen, respectively for the pointing device (Mouse is also utilized for touch messages) and Screen for the display. In LazDeviceAPIs there are global objects: Accelerometer, PositionInfo, Messaging, etc.

Accelerometer

The Accelerometer is very easy to use. Just call Accelerometer.StartReadingAccelerometerData to start listening to the accelerometer sensor and call Accelerometer.StopReadingAccelerometerData to stop listening to it:

uses lazdeviceapis;

procedure TForm2.btnStartAccelClick(Sender: TObject);
begin
  Accelerometer.OnSensorChanged := @HandleAccelerometerChanged;
  Accelerometer.StartReadingAccelerometerData();
end;

procedure TForm2.btnStopAccelClick(Sender: TObject);
begin
  Accelerometer.StopReadingAccelerometerData();
end;

procedure TForm2.HandleAccelerometerChanged(Sender: TObject);
begin
  labelSensorData.Caption := Format('X=%f Y=%f Z=%f', [Accelerometer.xaxis,
    Accelerometer.yaxis, Accelerometer.zaxis]);
  DebugLn(labelSensorData.Caption);
end;

Android Permissions

This object requires no special permissions under Android.

PositionInfo

Android Permissions

Using the PositionInfo global object in Android requires adding the following permissions to the AndroidManifest.xml file of the application, as can be seen bellow.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Messaging

Android Permissions

Using the Messaging global object in Android requires adding the following permissions to the AndroidManifest.xml file of the application, as can be seen bellow.

<uses-permission android:name="android.permission.SEND_SMS" />

Roadmap

LazDeviceAPIs is currently implemented only for LCL-CustomDrawn-Android

See Also