tizen_interop 0.2.0 copy "tizen_interop: ^0.2.0" to clipboard
tizen_interop: ^0.2.0 copied to clipboard

Provides Dart bindings and utility functions for using Tizen native APIs.

tizen_interop #

This package provides Dart bindings and utility functions for using Tizen native APIs.

⚠️Caution: 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.0

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 Email
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
3
likes
0
pub points
40%
popularity

Publisher

verified publishertizen.org

Provides Dart bindings and utility functions for using Tizen native APIs.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

ffi, path, yaml

More

Packages that depend on tizen_interop