Sailfish OSでのD-Busシステム機能の使用

はじめに



この記事は、Sailfish OSでのシステムAPIの使用に関する資料の続きであり、このオペレーティングシステムのD-Busの機能に専念しています。 標準カレンダーおよびフラッシュとの相互作用が詳細に分析されます。 D-Busシステムの他の基本機能のリストは、記事の最後に記載されています。



上記の資料を理解するには、Sailfish OSの開発の基本と、オペレーティングシステム内のD-Busとの相互作用の原則を知る必要があります。 適切な出発点は、FRUCTの関連記事です。



[1] Sailfish OSの開発の開始

[2] Sailfish OS向けの開発:D-Busとの連携



理論



利用可能なインターフェイスとD-Bus機能に関する情報を取得するには、2つの方法があります。 最初のアプローチは、特別なユーティリティ( Visual D-Bus



D-Bus Inspector



)またはコマンドライン(図1)を使用して、システムに登録されているインターフェイスを調べることです。 2番目のアプローチでは、前の記事で説明したソースコードの調査方法を使用します。





[図1-D-Busインターフェースのリストを取得する例。]



最初のアプローチの大きな利点は、バイナリファイルに「配線」されており、テキスト形式では利用できないインターフェイスに関する情報を取得できることですが、この方法では現在アクティブなインターフェイスのみを分析できます。 この記事で使用する2番目のアプローチは、最初のアプローチの説明したプラスとマイナスを逆にします。



テクニック



D-Bus関数は、C ++コード(システムでは利用できない)、QMLコード、およびアプリケーションデスクトップファイルから呼び出す(または定義する)ことができます。 したがって、インターフェースに関する情報を検索する場合、まずorg.nemomobile.dbus



モジュールについてのアイデアが必要です。 第二に、デスクトップファイルからD-Busにアクセスする方法について。



org.nemomobile.dbus



QMLモジュールは、D-Busを操作するための2つの主要コンポーネント、 DBusAdaptor



DBusInterface



ます。 1つ目は独自のアプリケーションインターフェイスを作成することを可能にし、2つ目は既存のものを使用します。 情報の一般的な検索では、外部からアプリケーションとやり取りする方法と、アプリケーションがサードパーティのインターフェイスを使用する方法をそれぞれ確認できるため、両方のコンポーネントが重要です。



たとえば、D-Busが設定アプリケーションを使用するインターフェイスを見つけるには、 /usr/share/jolla-settings



に移動して、D-Busの使用を確認する必要があります。



grep -i -H 'dbus' * && grep -A 5 'DBusAdaptor' ./settings.qml
 $ cd /usr/share/jolla-settings/ $ grep -i -H 'dbus' * settings.qml:import org.nemomobile.dbus 2.0 settings.qml: DBusAdaptor { $ grep -A 5 'DBusAdaptor' ./settings.qml DBusAdaptor { service: "com.jolla.settings" path: "/com/jolla/settings/ui" iface: "com.jolla.settings.ui" function showSettings() {
      
      







同時に、デスクトップファイルを分析するときは、まずデスクトップファイルが/usr/share/applications



ディレクトリに保存されることを覚えておく必要があります。 次に、説明されている関数を使用すると、アプリケーションインスタンスが起動します。 3番目に、D-Busとの相互作用を説明するときに、 X-Maemo



プレフィックスを持つフィールドが使用されます。





知って面白い
X-Maemo



プレフィックスは、以前にNokiaが開発したMaemoオペレーティングシステムのレガシーとしてSailfish OSに登場しました(図2)。 これらを使用すると、プログラムを最初に起動しなくてもアクセスできるように、D-Bus関数を宣言できます。 これらの関数を使用すると、いくつかの予備作業を開く前に、実装を使用してプログラムを起動できます。



画像

[図2-他のオペレーティングシステムへのSailfish OSの依存性( ウィキペディア )。]



デスクトップファイルでは、 MimeType



フィールドを使用して、プログラムが処理できるファイルの種類を示すことができることに注意してください。 実装例はGitHubで入手できます



したがって、D-Busの使用をサポートするすべてのアプリケーションのリストを取得するには、 /usr/share/applications



ディレクトリに移動して、キーワードの1つを検索する必要があります。



grep -H 'X-Maemo-Service' *
 $ cd /usr/share/applications/ $ grep -H 'X-Maemo-Service' * jolla-calendar-import.desktop:X-Maemo-Service=com.jolla.calendar.ui jolla-calendar.desktop:X-Maemo-Service=com.jolla.calendar.ui jolla-camera-viewfinder.desktop:X-Maemo-Service=com.jolla.camera jolla-clock.desktop:X-Maemo-Service=com.jolla.clock jolla-contacts-import.desktop:X-Maemo-Service=com.jolla.contacts.ui jolla-email.desktop:X-Maemo-Service=com.jolla.email.ui jolla-gallery-openfile.desktop:X-Maemo-Service=com.jolla.gallery jolla-gallery-playvideostream.desktop:X-Maemo-Service=com.jolla.gallery jolla-mediaplayer-openfile.desktop:X-Maemo-Service=com.jolla.mediaplayer jolla-mediaplayer.desktop:X-Maemo-Service=com.jolla.mediaplayer jolla-messages-openurl.desktop:X-Maemo-Service=org.nemomobile.qmlmessages jolla-messages.desktop:X-Maemo-Service=org.nemomobile.qmlmessages jolla-notes-import.desktop:X-Maemo-Service=com.jolla.notes jolla-notes.desktop:X-Maemo-Service=com.jolla.notes jolla-settings.desktop:X-Maemo-Service=com.jolla.settings new-mail.desktop:X-Maemo-Service=com.jolla.email.ui open-url.desktop:X-Maemo-Service=org.sailfishos.browser.ui ovpn-import.desktop:X-Maemo-Service=com.jolla.settings sailfish-office-openfile.desktop:X-Maemo-Service=org.sailfish.office sailfish-office.desktop:X-Maemo-Service=org.sailfish.office simkit.desktop:X-Maemo-Service=org.sailfish.simkit voicecall-ui-openurl.desktop:X-Maemo-Service=com.jolla.voicecall.ui voicecall-ui.desktop:X-Maemo-Service=com.jolla.voicecall.ui
      
      







APIとD-Busの基本的なシステム機能の概要表は、記事の最後に記載されています。



練習する



現在および以前の記事で提示された理論的な資料を使用すると、D-Busのシステム機能で動作するコンポーネントを実装できます。



当日のスケジュールを開くことができるコンポーネントを作成します。 これを行うには、 /usr/share/jolla-calendar



ディレクトリに移動し(ディレクトリの命名の原則は前の記事で説明しました)、D-Busの呼び出しがあるファイルを見つけます。



grep -r -i -H 'dbus' *
 $ cd /usr/share/jolla-calendar/ $ grep -r -i -H 'dbus' * DbusInvoker.qml:import org.nemomobile.dbus 2.0 DbusInvoker.qml:DBusAdaptor { calendar.qml:import org.nemomobile.dbus 2.0 calendar.qml: DbusInvoker {}
      
      







コマンドの結果は、インターフェースの定義がDbusInvoker.qml



ファイルで行われていることをDbusInvoker.qml



ます。このファイルには、インターフェースとD-Bus関数の定義のみが含まれています。



cat ./DbusInvoker.qml -n
 $ cat ./DbusInvoker.qml -n 1 import QtQuick 2.0 2 import Sailfish.Silica 1.0 3 import org.nemomobile.dbus 2.0 4 import Calendar.dateParser 1.0 5 6 DBusAdaptor { 7 service: "com.jolla.calendar.ui" 8 path: "/com/jolla/calendar/ui" 9 iface: "com.jolla.calendar.ui" 10 11 function viewEvent(id, recurrenceId, startDate) { 12 var occurrence = DateParser.parseTime(startDate) 13 if (isNaN(occurrence.getTime())) { 14 console.warn("Invalid event start date, unable to show event") 15 return 16 } 17 18 if (pageStack.currentPage.objectName === "EventViewPage") { 19 pageStack.currentPage.uniqueId = id 20 pageStack.currentPage.recurrenceId = recurrenceId 21 pageStack.currentPage.startTime = occurrence 22 } else { 23 pageStack.push("pages/EventViewPage.qml", 24 { uniqueId: id, recurrenceId: recurrenceId, startTime: occurrence }, 25 PageStackAction.Immediate) 26 } 27 requestActive.start() 28 } 29 30 function viewDate(dateTime) { 31 var parsedDate = new Date(dateTime) 32 if (isNaN(parsedDate.getTime())) { 33 console.warn("Invalid date, unable to show events for date") 34 return 35 } 36 37 if (pageStack.currentPage.objectName === "DayPage") { 38 pageStack.currentPage.date = parsedDate 39 } else { 40 pageStack.push("pages/DayPage.qml", { date: parsedDate }, PageStackAction.Immediate) 41 } 42 requestActive.start() 43 } 44 45 function importFile(fileName) { 46 if (pageStack.currentPage.objectName === "ImportPage") { 47 pageStack.currentPage.fileName = fileName 48 } else { 49 pageStack.push("pages/ImportPage.qml", { "fileName": fileName }, PageStackAction.Immediate) 50 } 51 requestActive.start() 52 } 53 54 function activateWindow(arg) { 55 app.activate() 56 } 57 }
      
      







アダプターコードから、作成されたコンポーネントでcom.jolla.calendar.ui



サービスに接続し、パス/com/jolla/calendar/ui



およびcom.jolla.calendar.ui



インターフェースを使用する必要があることがcom.jolla.calendar.ui



ます(行7-9)。 その後、宣言された関数が使用可能になります。タスクのフレームワーク内で関心があるのはviewDate



viewDate



行目)だけで、 Date



オブジェクトによって認識される日付表現の1つを引数として取ります。 得られた結果により、カレンダーを操作するためのコンポーネントを実装できます。



CalendarController.qml
 import QtQuick 2.0 import Sailfish.Silica 1.0 import org.nemomobile.dbus 2.0 Item { id: calendarControl /*     . */ function showAgenda() { calendar.call('viewDate', Date.now()) } DBusInterface { id: calendar service: 'com.jolla.calendar.ui' path: '/com/jolla/calendar/ui' iface: 'com.jolla.calendar.ui' } }
      
      







同じ原理により、D-Busシステムの機能と相互作用する他のコンポーネントが形成されます。



フラッシュ制御プロセスを検討してください。 これを行うには、 /usr/share/jolla-settings/pages/flashlight



ディレクトリの分析に従って、 com.jolla.settings.system.flashlight



サービスに接続し、パス/com/jolla/settings/system/flashlight



およびcom.jolla.settings.system.flashlight



インターフェイスを使用するcom.jolla.settings.system.flashlight



ます。 com.jolla.settings.system.flashlight



。 その後、パラメータなしでtoggleFlashlight関数を呼び出すことで、フラッシュのオンとオフを切り替えることが可能になります。



ただし、一部のタスクでは、フラッシュのオン/オフに関わらず、フラッシュの現在の状態に関する情報を取得する必要がある場合があります。 これを行うには、 "flashlightOn"



パラメーターを渡してgetProperty



関数を使用します。 この場合、ブール値が返されます。



grep -i -H 'dbus' ./pages/flashlight/* && grep -A 5 -i -H 'DBusInterface' ./pages/flashlight/Flashlight.qml
 $ cd /usr/share/jolla-settings $ grep -i -H "dbus" ./pages/flashlight/* ./pages/flashlight/Flashlight.qml:import org.nemomobile.dbus 2.0 ./pages/flashlight/Flashlight.qml: flashlightDbus.call("toggleFlashlight", undefined, handleToggle, handleError) ./pages/flashlight/Flashlight.qml: property QtObject flashlightDbus: DBusInterface { ./pages/flashlight/Flashlight.qml: flashlight.flashlightOn = flashlightDbus.getProperty("flashlightOn") $ grep -A 5 -i -H "DBusInterface" ./pages/flashlight/Flashlight.qml ./pages/flashlight/Flashlight.qml: property QtObject flashlightDbus: DBusInterface { ./pages/flashlight/Flashlight.qml- signalsEnabled: true ./pages/flashlight/Flashlight.qml- service: "com.jolla.settings.system.flashlight" ./pages/flashlight/Flashlight.qml- path: "/com/jolla/settings/system/flashlight" ./pages/flashlight/Flashlight.qml- iface: "com.jolla.settings.system.flashlight" ./pages/flashlight/Flashlight.qml- function flashlightOnChanged(newOn) {
      
      







上記を考慮すると、フラッシュと対話するためのコンポーネントが実装されます。



FlashlightController.qml
 import QtQuick 2.0 import Sailfish.Silica 1.0 import org.nemomobile.dbus 2.0 Item { id: flashlightControl //  . property bool flashlightOn //    . function toggleFlashlight() { flashlightOn = !flashlightOn; flashlight.call("toggleFlashlight", undefined); } DBusInterface { id: flashlight service: "com.jolla.settings.system.flashlight" path: "/com/jolla/settings/system/flashlight" iface: "com.jolla.settings.system.flashlight" signalsEnabled: true function flashlightOnChanged(newOn) { flashlightControl.flashlightOn = newOn } } Component.onCompleted: { flashlightControl.flashlightOn = flashlight.getProperty("flashlightOn") } }
      
      







おわりに



この記事では、Sailfish OSのD-Bus関数に関する情報を見つける2つの方法について説明し、そのうちの1つを詳細に分析します(ソースコードでの検索)。 これを使用して、フラッシュおよび標準カレンダーと対話するためのコンポーネントの例が開発され、コメントが付けられます。 これらおよび他のモジュールのコードはGitHubで入手できます



ただし、目的のプログラムを必要な引数で実行するだけでいくつかのタスクを解決できることを忘れないでください。 たとえば、サイトを開いて標準ブラウザを起動するには、 sailfish-browser https://google.com/



コマンドsailfish-browser https://google.com/



を使用しsailfish-browser https://google.com/



。 しかし、これは記事で説明されている資料の範囲を超えています。



sailfish-browser https://google.com/
 $ sailfish-browser https://google.com/ [D] unknown:0 - Using Wayland-EGL greHome from GRE_HOME:/usr/bin libxul.so is not found, in /usr/bin/libxul.so Created LOG for EmbedLite [D] onCompleted:103 - ViewPlaceholder requires a SilicaFlickable parent Loaded xulDir:/usr/lib/xulrunner-qt5-38.8.0/libxul.so, appDir:/usr/bin EmbedLiteExt virtual nsresult EmbedChromeManager::Observe(nsISupports*, const char*, const char16_t*):82: obj:(nil), top:app-startup EmbedLiteExt virtual nsresult EmbedTouchManager::Observe(nsISupports*, const char*, const char16_t*):86: obj:(nil), top:app-startup EmbedLiteGlobalHelper app-startup EmbedLiteSyncService app-startup PREFS SERVICE INITAILIZED EmbedPrefService app-startup EmbedliteDownloadManager initialized UserAgentOverrideHelper app-startup 1505073762747 addons.manager DEBUG Application has been upgraded 1505073762892 addons.manager DEBUG Loaded provider scope for resource://gre/modules/addons/XPIProvider.jsm: ["XPIProvider"] 1505073762912 addons.manager DEBUG Loaded provider scope for resource://gre/modules/LightweightThemeManager.jsm: ["LightweightThemeManager"] 1505073762942 addons.manager DEBUG Loaded provider scope for resource://gre/modules/addons/GMPProvider.jsm 1505073762961 addons.manager DEBUG Loaded provider scope for resource://gre/modules/addons/PluginProvider.jsm 1505073762968 addons.manager DEBUG Starting provider: XPIProvider 1505073762973 addons.xpi DEBUG startup 1505073762982 addons.xpi DEBUG checkForChanges 1505073762993 addons.xpi DEBUG Loaded add-on state from prefs: {} 1505073763000 addons.xpi DEBUG getInstallState changed: false, state: {} 1505073763009 addons.xpi DEBUG Empty XPI database, setting schema version preference to 16 1505073763012 addons.xpi DEBUG No changes found 1505073763015 addons.manager DEBUG Registering shutdown blocker for XPIProvider 1505073763021 addons.manager DEBUG Provider finished startup: XPIProvider 1505073763022 addons.manager DEBUG Starting provider: LightweightThemeManager 1505073763024 addons.manager DEBUG Registering shutdown blocker for LightweightThemeManager 1505073763029 addons.manager DEBUG Provider finished startup: LightweightThemeManager 1505073763032 addons.manager DEBUG Starting provider: GMPProvider 1505073763046 addons.manager DEBUG Registering shutdown blocker for GMPProvider 1505073763050 addons.manager DEBUG Provider finished startup: GMPProvider 1505073763052 addons.manager DEBUG Starting provider: PluginProvider 1505073763055 addons.manager DEBUG Registering shutdown blocker for PluginProvider 1505073763059 addons.manager DEBUG Provider finished startup: PluginProvider 1505073763060 addons.manager DEBUG Completed startup sequence Created LOG for EmbedPrefs [D] QMozWindowPrivate::setSize:71 - Trying to set empty size: QSize(-1, -1) Attempting load of libEGL.so EmbedLiteExt virtual nsresult EmbedTouchManager::Observe(nsISupports*, const char*, const char16_t*):86: obj:0xb225a130, top:domwindowopened EmbedLiteExt void EmbedChromeManager::WindowCreated(nsIDOMWindow*):91: WindowOpened: 0xb225a140 EmbedLiteExt void EmbedTouchManager::WindowCreated(nsIDOMWindow*):95: WindowOpened: 0xb225a140 EmbedLiteExt void EmbedTouchManager::WindowCreated(nsIDOMWindow*):108: id for window: 1 ###################################### SelectAsyncHelper.js loaded ###################################### embedhelper.js loaded ### ContextMenuHandler.js loaded ### SelectionPrototype.js loaded ### SelectionHandler.js loaded Init Called:[object Object] JavaScript warning: https://www.google.ru/xjs/_/js/k=xjs.mhp.en_US.2vKAz7DqmvI.O/m=sb_mobh,hjsa,d,csi/am=AAAD/rt=j/d=1/t=zcms/rs=ACT90oFx8AHVqc9lMfPQBwURKXyQ4qaFiA, line 7: mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create
      
      







メインシステムAPI関数:
説明 必要なデータ
雰囲気を作る
 import Sailfish.Ambience 1.0 var previousAmbienceUrl = Ambience.source Ambience.setAmbience(url, function(ambienceId) { pageStack.push(ambienceSettings, { 'contentId': ambienceId, 'previousAmbienceUrl': previousAmbienceUrl }) })
      
      



画面の明るさを調整する
 import org.nemomobile.systemsettings 1.0 DisplaySettings { id: displaySettings } maximumValue: displaySettings.maximumBrightness minimumValue: 1 value: displaySettings.brightness displaySettings.brightness = Math.round(value)
      
      



画面の向きの調整
 import org.nemomobile.systemsettings 1.0 DisplaySettings { id: displaySettings } displaySettings.orientationLock = "dynamic" //   displaySettings.orientationLock = "portrait" //   displaySettings.orientationLock = "landscape" //  
      
      



画面の明るさを自動的に調整する
 import org.nemomobile.systemsettings 1.0 DisplaySettings { id: displaySettings } checked: displaySettings.ambientLightSensorEnabled && displaySettings.autoBrightnessEnabled if (checked) { displaySettings.autoBrightnessEnabled = false } else { displaySettings.autoBrightnessEnabled = true displaySettings.ambientLightSensorEnabled = true }
      
      



スリープ時間を設定する
 import org.nemomobile.systemsettings 1.0 DisplaySettings { id: displaySettings } displaySettings.dimTimeout = VALUE_IN_SECONDS
      
      



充電中の表示状態の設定
 import org.nemomobile.systemsettings 1.0 DisplaySettings { id: displaySettings } displaySettings.inhibitMode = DisplaySettings.InhibitOff //      displaySettings.inhibitMode = DisplaySettings.InhibitStayOnWithCharger //      
      
      



システムフォントサイズの設定
 import org.nemomobile.configuration 1.0 ConfigurationValue { id: fontSizeCategory key: "/desktop/jolla/theme/font/sizeCategory" defaultValue: "normal" } fontSizeCategory.value = "normal" //    fontSizeCategory.value = "large" //    fontSizeCategory.value = "huge" //   
      
      



システム音量調整
 import org.nemomobile.systemsettings 1.0 ProfileControl { id: profileControl } maximumValue: 100 minimumValue: 0 profileControl.ringerVolume = value profileControl.profile = (value > 0) ? "general" : "silent"
      
      



振動設定
 import org.nemomobile.systemsettings 1.0 ProfileControl { id: soundSettings } soundSettings.vibraMode = ProfileControl.VibraAlways //    soundSettings.vibraMode = ProfileControl.VibraSilent //      soundSettings.vibraMode = ProfileControl.VibraNormal //      soundSettings.vibraMode = ProfileControl.VibraNever //   
      
      



システムイベントのサウンドをオン/オフにする
 import org.nemomobile.systemsettings 1.0 ProfileControl { id: soundSettings } soundSettings.systemSoundLevel = false //  soundSettings.systemSoundLevel = true // 
      
      



WLANの有効化/無効化
 import MeeGo.Connman 0.2 import com.jolla.settings 1.0 import com.jolla.connection 1.0 TechnologyModel { id: wifiListModel name: "wifi" } NetworkManagerFactory { id: networkManager } NetworkTechnology { id: wifiTechnology path: networkManager.instance.technologyPathForType("wifi") } ConnectionAgent { id: connectionAgent } checked: wifiListModel.available && wifiListModel.powered && !wifiTechnology.tethering if (wifiTechnology.tethering) connectionAgent.stopTethering(true) else wifiListModel.powered = !wifiListModel.powered
      
      



インターネット共有を有効/無効にする
 import Sailfish.Telephony 1.0 import Sailfish.Silica.private 1.0 import MeeGo.Connman 0.2 import MeeGo.QOfono 0.2 import com.jolla.connection 1.0 ConnectionAgent { id: connectionAgent } NetworkManagerFactory { id: networkManager } NetworkTechnology { id: wifiTechnology path: networkManager.instance.technologyPathForType("wifi") } SimManager { id: simManager controlType: SimManagerType.Data } OfonoNetworkRegistration { id: networkRegistration modemPath: simManager.activeModem } OfonoConnMan { id: connectionManager modemPath: simManager.activeModem } function roamingDataAllowed() { return networkRegistration.valid && connectionManager.valid && !(networkRegistration.status === "roaming" && !connectionManager.roamingAllowed) } enabled: !networkManager.instance.offlineMode && (roamingDataAllowed() || wifiTechnology.tethering) if (wifiTechnology.tethering) { delayedTetheringSwitch.start() connectionAgent.stopTethering() } else { delayedTetheringSwitch.start() connectionAgent.startTethering("wifi") }
      
      



飛行モードのオン/オフ
 import MeeGo.Connman 0.2 NetworkManagerFactory { id: connMgr } connMgr.instance.offlineMode = true //  connMgr.instance.offlineMode = false // 
      
      



Bluetoothのオン/オフを切り替えます
 import MeeGo.Connman 0.2 import Sailfish.Bluetooth 1.0 import org.kde.bluezqt 1.0 as BluezQt TechnologyModel { id: btTechModel; name: "bluetooth" } btTechModel.powered = !btTechModel.powered // 
      
      







メインシステムのD-Bus機能:
説明 必要なデータ
カレンダーイベントを表示する サービス:

com.jolla.calendar.ui





パス:

/com/jolla/calendar/ui





インターフェース:

com.jolla.calendar.ui





機能:

viewEvent(id, recurrenceId, startDate)



カレンダーで日を表示する サービス:

com.jolla.calendar.ui





パス:

/com/jolla/calendar/ui





インターフェース:

com.jolla.calendar.ui





機能:

viewDate(dateTime)



最後の状態でカメラを開く サービス:

com.jolla.camera





パス:

/





インターフェース:

com.jolla.camera.ui





機能:

showViewfinder()



フロントカメラを開く サービス:

com.jolla.camera





パス:

/





インターフェース:

com.jolla.camera.ui





機能:

showFrontViewfinder()



アラームを作成する サービス:

com.jolla.clock





パス:

/





インターフェース:

com.jolla.clock





機能:

newAlarm()



連絡先を表示 サービス:

com.jolla.contacts.ui





パス:

/com/jolla/contacts/ui





インターフェース:

com.jolla.contacts.ui





機能:

showContact(int contactId)



連絡先の編集 サービス:

com.jolla.contacts.ui





パス:

/com/jolla/contacts/ui





インターフェース:

com.jolla.contacts.ui





機能:

editContact(int contactId)



連絡先をインポートする サービス:

com.jolla.contacts.ui





パス:

/com/jolla/contacts/ui





インターフェース:

com.jolla.contacts.ui





機能:

importWizard()



URLでオーディオファイルを再生する サービス:

com.jolla.mediaplayer





パス:

/com/jolla/mediaplayer/ui





インターフェース:

com.jolla.mediaplayer.ui





機能:

openUrl(url)



新しいメモを作成する サービス:

com.jolla.notes





パス:

/





インターフェース:

com.jolla.notes





機能:

newNote()



設定を表示 サービス:

com.jolla.settings





パス:

/com/jolla/settings/ui





インターフェース:

com.jolla.settings.ui





機能:

showSettings()



ダウンロードリストを見る サービス:

com.jolla.settings





パス:

/com/jolla/settings/ui





インターフェース:

com.jolla.settings.ui





機能:

showTransfers()



アカウントリストを表示 サービス:

com.jolla.settings





パス:

/com/jolla/settings/ui





インターフェース:

com.jolla.settings.ui





機能:

showAccounts()



通話録音設定を表示する サービス:

com.jolla.settings





パス:

/com/jolla/settings/ui





インターフェース:

com.jolla.settings.ui





機能:

showCallRecordings()



Androidサポートの有効化/無効化 サービス:

com.jolla.apkd





パス:

/com/jolla/apkd





インターフェース:

com.jolla.apkd





機能:

controlService(true/false)



フラッシュをオン/オフにする サービス:

com.jolla.settings.system.flashlight





パス:

/com/jolla/settings/system/flashlight





インターフェース:

com.jolla.settings.system.flashlight





機能:

toggleFlashlight()



デバイスを再起動します サービス:

com.nokia.dsme





パス:

/com/nokia/dsme/request





インターフェース:

com.nokia.dsme.request





機能:

req_reboot()



デバイスの電源を切ります サービス:

com.nokia.dsme





パス:

/com/nokia/dsme/request





インターフェース:

com.nokia.dsme.request





機能:

req_shutdown



電話する サービス:

com.jolla.voicecall.ui





パス:

/





インターフェース:

com.jolla.voicecall.ui





機能:

dial(number)



ギャラリーで画像を開く サービス:

com.jolla.gallery





パス:

/com/jolla/gallery/ui





インターフェース:

com.jolla.gallery.ui





機能:

showImages(array_of_urls)



ギャラリーでビデオを開く サービス:

com.jolla.gallery





パス:

/com/jolla/gallery/ui





インターフェース:

com.jolla.gallery.ui





機能:

playVideoStream(url)



新しい手紙を作成する サービス:

com.jolla.email.ui





パス:

/com/jolla/email/ui





インターフェース:

com.jolla.email.ui





機能:

mailto()



WLAN検索 サービス:

com.jolla.lipstick.ConnectionSelector





パス:

/





インターフェース:

com.jolla.lipstick.ConnectionSelectorIf





機能:

openConnectionNow('wifi')







開発中に生じる質問やアイデアは、 TelegramチャットVKontakteグループでいつでも議論できます。



All Articles