diff options
author | saman <mahmoudi.saman1@gmail.com> | 2020-11-30 09:11:27 +0330 |
---|---|---|
committer | saman <mahmoudi.saman1@gmail.com> | 2020-12-19 09:50:33 +0330 |
commit | 067ffa5ef915499fed17a2ed67ad2fe689fdea81 (patch) | |
tree | 5c19bc7380a00537cdf60529b60935ac4cbcce60 | |
parent | 58aa4fbd91ca721994b6efe176ea94ccaee324ca (diff) |
Getting network registration of connected phone device.koi_10.92.0koi/10.92.010.92.0
Is used ofono service and NetworkRegistration interface.
Add NeworkRegistration interface to provide access to the connected phone's network registration properties (registration mode, status, technology, strength)
Bug-AGL: SPEC-3721
Signed-off-by: saman <mahmoudi.saman1@gmail.com>
Change-Id: I9c4be0366f97b39056af3b5bc9e861097a48ed44
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | binding/gdbus/ofono_manager.h | 1 | ||||
-rw-r--r-- | binding/telephony-binding.c | 22 |
3 files changed, 24 insertions, 0 deletions
@@ -15,6 +15,7 @@ Telephony service allows respective clients access to the Handsfree Profile via | hangup | hangup an active call or reject incoming call | | | answer | answer incoming call | | | get_battery_level | getting battery level of connected phone device | | +| get_network_registration | getting network registration of connected phone device | *Response:* {"Status": "registered","Mode": "auto-only","Name": "Irancell","Strength": 20} | ## Events diff --git a/binding/gdbus/ofono_manager.h b/binding/gdbus/ofono_manager.h index c7333d0..cd62736 100644 --- a/binding/gdbus/ofono_manager.h +++ b/binding/gdbus/ofono_manager.h @@ -23,6 +23,7 @@ #define OFONO_SERVICE "org.ofono" #define OFONO_HANDSFREE_INTERFACE OFONO_SERVICE ".Handsfree" +#define OFONO_NetworkRegistration_INTERFACE OFONO_SERVICE ".NetworkRegistration" int ofono_manager_init(void); void ofono_manager_invalidate_default_modem(void); diff --git a/binding/telephony-binding.c b/binding/telephony-binding.c index 2f96338..b2dc073 100644 --- a/binding/telephony-binding.c +++ b/binding/telephony-binding.c @@ -141,6 +141,24 @@ static void get_battery_level(afb_req_t request) return; } +static void get_network_registration(afb_req_t request) +{ + const gchar *device; + + device = ofono_manager_get_default_modem_path(); + if (!device) { + afb_req_fail(request, "failed", "No path find"); + return; + } + + json_object *result = ofono_get_property(device, OFONO_NetworkRegistration_INTERFACE, NULL, NULL); + if (!result) + afb_req_fail(request, "failed", "Can not find Network Registration object"); + else + afb_req_success(request, result, "OK"); + return; +} + static void subscribe(afb_req_t request) { const char *value = afb_req_value(request, "value"); @@ -397,6 +415,10 @@ static const afb_verb_t verbs[]= { .callback = get_battery_level, }, { + .verb = "get_network_registration", + .callback = get_network_registration, + }, + { .verb = "subscribe", .callback = subscribe, }, |