tizen_interop 0.2.3 tizen_interop: ^0.2.3 copied to clipboard
Dart bindings and utilities for using Tizen native APIs.
tizen_interop #
Provides Dart bindings and utilities for using Tizen native APIs.
Warning
This package is currently under testing and not intended for production use. Some APIs may be missing or have errors.
Usage #
To use this package, add ffi
and tizen_interop
as dependencies in your pubspec.yaml
file.
dependencies:
ffi: ^2.0.1
tizen_interop: ^0.2.3
Then, import package:ffi/ffi.dart
and package:tizen_interop/[TIZEN_VERSION]/tizen.dart
in your Dart code.
import 'package:ffi/ffi.dart';
import 'package:tizen_interop/4.0/tizen.dart';
Examples #
// Getting a string value from the Native API.
// Prefer using `arena` to allocate memory because it frees the memory
// automatically when the `using` block ends.
String appName = using((Arena arena) {
Pointer<Pointer<Char>> ppStr = arena();
if (tizen.app_get_name(ppStr) == 0) {
// The memory allocated by the Native API must be freed by the caller.
arena.using(ppStr.value, calloc.free);
return ppStr.value.toDartString();
}
return 'unknown';
});
// Passing a string value to the Native API.
// The memory allocated by the `toNativeChar` method must be freed by
// the caller. The `arena` allocator will free it automatically.
using((Arena arena) {
Pointer<Char> pKey =
'tizen_interop_test_key_for_int'.toNativeChar(allocator: arena);
tizen.preference_set_int(pKey, 100);
});
// Getting an integer value from the Native API.
int preferenceValue = using((Arena arena) {
Pointer<Char> pKey =
'tizen_interop_test_key_for_int'.toNativeChar(allocator: arena);
Pointer<Int> pValue = arena();
if (tizen.preference_get_int(pKey, pValue) == 0) {
return pValue.value;
}
return 0;
});
// Getting a struct value from the Native API.
int freeMemory = using((Arena arena) {
Pointer<runtime_memory_info_s> pMemInfo = arena();
if (tizen.runtime_info_get_system_memory_info(pMemInfo) == 0) {
return pMemInfo.ref.free;
}
return 0;
});
Building from source #
Install the following packages using Tizen Package Manager.
IOT-Headed-4.0-NativeAppDevelopment-CLI
IOT-Headed-5.0-NativeAppDevelopment-CLI
IOT-Headed-5.5-NativeAppDevelopment-CLI
IOT-Headed-6.0-NativeAppDevelopment-CLI
IOT-Headed-6.5-NativeAppDevelopment-CLI
Then, run script files as follows. Dart bindings (lib/src/.../generated_bindings.dart
) will be regenerated by ffigen.
./scripts/copy_rootstraps.sh
./scripts/generate_bindings.sh
Supported APIs #
This package provides bindings of the following APIs of Tizen IoT-Headed profile:
Note: UI and WebView related APIs are not provided.
Category | Sub Category | Tizen 4.0 | Tizen 5.0 | Tizen 5.5 | Tizen 6.0 | Tizen 6.5 |
---|---|---|---|---|---|---|
Account | Account Manager | ✔ | ✔ | ✔ | ✔ | |
FIDO Client | ✔ | ✔ | ✔ | ✔ | ||
Account Manager | ✔ | ✔ | ✔ | ✔ | ||
OAuth 2.0 | ✔ | ✔ | ✔ | ✔ | ||
Sync Manager | ✔ | ✔ | ✔ | ✔ | ||
Application Framework | Application | ✔ | ✔ | ✔ | ✔ | ✔ |
Alarm | ✔ | ✔ | ✔ | ✔ | ✔ | |
App Common | ✔ | ✔ | ✔ | ✔ | ✔ | |
App Control | ✔ | ✔ | ✔ | ✔ | ✔ | |
App Control URI | ✔ | |||||
Event | ✔ | ✔ | ✔ | ✔ | ✔ | |
Internationalization | ✔ | ✔ | ✔ | ✔ | ✔ | |
Job scheduler | ✔ | ✔ | ✔ | ✔ | ||
Preference | ✔ | ✔ | ✔ | ✔ | ✔ | |
Resource Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Application Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Badge | ✔ | ✔ | ✔ | ✔ | ✔ | |
Bundle | ✔ | ✔ | ✔ | ✔ | ✔ | |
Cion | ✔ | |||||
Data Control | ✔ | ✔ | ✔ | ✔ | ✔ | |
Message Port | ✔ | ✔ | ✔ | ✔ | ✔ | |
Notification | ✔ | ✔ | ✔ | ✔ | ✔ | |
Notification EX | ✔ | ✔ | ✔ | |||
Package Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
RPC Port | ✔ | ✔ | ✔ | ✔ | ||
Service Application | ✔ | ✔ | ✔ | ✔ | ✔ | |
Shortcut | ✔ | ✔ | ✔ | ✔ | ✔ | |
Base | Common Error | ✔ | ✔ | ✔ | ✔ | ✔ |
Content | Download | ✔ | ✔ | ✔ | ✔ | ✔ |
MIME Type | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media Content | ✔ | ✔ | ✔ | ✔ | ✔ | |
Activity Recognition | ✔ | ✔ | ✔ | |||
Contextual History | ✔ | ✔ | ✔ | ✔ | ||
Contextual Trigger | ✔ | ✔ | ✔ | ✔ | ||
Gesture Recognition | ✔ | ✔ | ✔ | |||
Location | Geofence Manager | ✔ | ✔ | ✔ | ✔ | |
Location Manager | ✔ | ✔ | ✔ | ✔ | ||
Machine Learning | Pipeline | ✔ | ||||
Single | ✔ | |||||
Trainer | ✔ | |||||
Messaging | ✔ | ✔ | ✔ | ✔ | ✔ | |
Messages | ✔ | ✔ | ||||
Push | ✔ | ✔ | ✔ | ✔ | ||
Multimedia | Audio I/O | ✔ | ✔ | ✔ | ✔ | ✔ |
Camera | ✔ | ✔ | ✔ | ✔ | ✔ | |
Image Util | ✔ | ✔ | ✔ | ✔ | ||
Media Codec | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media Controller | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media Demuxer | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media Muxer | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media Streamer | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media Tool | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media Vision | ✔ | ✔ | ✔ | ✔ | ||
Metadata Editor | ✔ | ✔ | ✔ | ✔ | ✔ | |
Metadata Extractor | ✔ | ✔ | ✔ | ✔ | ✔ | |
Player | ✔ | ✔ | ✔ | ✔ | ✔ | |
Radio | ✔ | ✔ | ✔ | ✔ | ||
Recorder | ✔ | ✔ | ✔ | ✔ | ✔ | |
Screen Mirroring | ✔ | ✔ | ✔ | ✔ | ||
Sound Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Sound Pool | ✔ | ✔ | ✔ | ✔ | ✔ | |
StreamRecorder | ✔ | ✔ | ✔ | ✔ | ✔ | |
Thumbnail Util | ✔ | ✔ | ✔ | ✔ | ✔ | |
Tone Player | ✔ | ✔ | ✔ | ✔ | ✔ | |
Video Util | ✔ | |||||
WAV Player | ✔ | ✔ | ✔ | ✔ | ✔ | |
WebRTC | ✔ | |||||
Network | Application Service Platform | ✔ | ✔ | ✔ | ✔ | |
Bluetooth | ✔ | ✔ | ✔ | ✔ | ✔ | |
Connection | ✔ | ✔ | ✔ | ✔ | ✔ | |
DNSSD | ✔ | ✔ | ✔ | ✔ | ✔ | |
HTTP | ✔ | ✔ | ✔ | ✔ | ||
IoTCon | ✔ | ✔ | ✔ | ✔ | ✔ | |
MTP | ✔ | ✔ | ✔ | ✔ | ✔ | |
SSDP | ✔ | ✔ | ✔ | ✔ | ✔ | |
Smart Traffic Control | ✔ | ✔ | ✔ | ✔ | ||
Smartcard | ✔ | ✔ | ||||
SoftAP | ✔ | ✔ | ✔ | ✔ | ||
VPN Service | ✔ | ✔ | ✔ | ✔ | ||
Wi-Fi Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Wi-Fi Direct | ✔ | ✔ | ✔ | ✔ | ||
Security | CSR | ✔ | ✔ | ✔ | ✔ | ✔ |
Device Certificate Manager | ✔ | ✔ | ✔ | ✔ | ||
Device Policy Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Key Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Privacy Privilege Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Privilege Info | ✔ | ✔ | ✔ | ✔ | ✔ | |
YACA | ✔ | ✔ | ✔ | ✔ | ✔ | |
Social | Calendar | ✔ | ✔ | ✔ | ✔ | ✔ |
Contacts | ✔ | ✔ | ✔ | ✔ | ✔ | |
Phonenumber utils | ✔ | ✔ | ✔ | ✔ | ✔ | |
System | Device | ✔ | ✔ | ✔ | ✔ | ✔ |
Diagnostics | ✔ | ✔ | ||||
Dlog | ✔ | ✔ | ✔ | ✔ | ✔ | |
Feedback | ✔ | ✔ | ✔ | ✔ | ✔ | |
Media key | ✔ | ✔ | ✔ | ✔ | ✔ | |
Peripheral IO | ✔ | ✔ | ✔ | ✔ | ✔ | |
Runtime information | ✔ | ✔ | ✔ | ✔ | ✔ | |
Sensor | ✔ | ✔ | ✔ | ✔ | ✔ | |
Storage | ✔ | ✔ | ✔ | ✔ | ✔ | |
System Information | ✔ | ✔ | ✔ | ✔ | ✔ | |
System Settings | ✔ | ✔ | ✔ | ✔ | ✔ | |
T-trace | ✔ | ✔ | ✔ | ✔ | ✔ | |
USB Host | ✔ | ✔ | ✔ | ✔ | ✔ | |
Telephony | Telephony Information | ✔ | ||||
UI | Clipboard History Manager | ✔ | ✔ | ✔ | ✔ | ✔ |
External Output Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
TBM Surface | ✔ | ✔ | ✔ | ✔ | ✔ | |
UIX | Autofill | ✔ | ✔ | ✔ | ||
Input Method | ✔ | ✔ | ✔ | ✔ | ✔ | |
Input Method Manager | ✔ | ✔ | ✔ | ✔ | ✔ | |
Multi assistant | ✔ | ✔ | ✔ | ✔ | ||
STT | ✔ | ✔ | ✔ | ✔ | ✔ | |
STT Engine | ✔ | ✔ | ✔ | ✔ | ✔ | |
TTS | ✔ | ✔ | ✔ | ✔ | ✔ | |
TTS Engine | ✔ | ✔ | ✔ | ✔ | ✔ | |
Voice control | ✔ | ✔ | ✔ | ✔ | ✔ | |
Voice control engine | ✔ | ✔ | ✔ | ✔ | ||
Voice control manager | ✔ | ✔ | ✔ |