void screen_reader_launch(void) { if (!screen_reader_on) return; if (is_screen_reader_running()) { dlog_print(DLOG_DEBUG, LOG_TAG, "screen reader already running"); return; } app_control_h app_control; int ret = app_control_create(&app_control); dlog_print(DLOG_DEBUG, LOG_TAG, "app_control_create: %i", ret); if (ret == APP_CONTROL_ERROR_NONE) { ret = app_control_set_app_id(app_control, "org.tizen.screen-reader"); dlog_print(DLOG_DEBUG, LOG_TAG, "app_control_set_app_id: %i", ret); } if (ret == APP_CONTROL_ERROR_NONE) { ret = app_control_send_launch_request(app_control, launch_reply_callback, NULL); dlog_print(DLOG_DEBUG, LOG_TAG, "app_control_send_launch_request: %i", ret); } screen_reader_on = ret == APP_CONTROL_ERROR_NONE; app_control_destroy(app_control); }
bool Application::openURL(const std::string &url) { bool flag = false; if(0==url.length()) { return flag; } app_control_h app_control; app_control_create(&app_control); app_control_set_operation(app_control, APP_CONTROL_OPERATION_VIEW); app_control_set_uri(app_control, url.c_str()); int ctrlError; if ((ctrlError=app_control_send_launch_request(app_control, NULL, NULL)) == APP_CONTROL_ERROR_NONE) { flag = true; } else { dlog_print(DLOG_ERROR, LOG_TAG, "open url failed, and returned %d", ctrlError); } app_control_destroy(app_control); return flag; }
static iotjs_error_t tizen_send_launch_request(const char* json, void* hbridge) { DDDLOG("%s", __func__); bundle* b; int ret; ret = bundle_from_json(json, &b); if (ret != BUNDLE_ERROR_NONE) { DDLOG("bundle_from_json failed"); return IOTJS_ERROR_INVALID_PARAMETER; } app_control_h app_control = NULL; app_control_create(&app_control); app_control_import_from_bundle(app_control, b); ret = app_control_send_launch_request(app_control, NULL, NULL); if (ret != APP_CONTROL_ERROR_NONE) { DDDLOG("app_control_send_launch_request failed"); switch (ret) { case APP_CONTROL_ERROR_INVALID_PARAMETER: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_INVALID_PARAMETER"); break; case APP_CONTROL_ERROR_OUT_OF_MEMORY: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_OUT_OF_MEMORY"); break; case APP_CONTROL_ERROR_APP_NOT_FOUND: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_APP_NOT_FOUND"); break; case APP_CONTROL_ERROR_LAUNCH_REJECTED: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_LAUNCH_REJECTED"); break; case APP_CONTROL_ERROR_LAUNCH_FAILED: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_LAUNCH_FAILED"); break; case APP_CONTROL_ERROR_TIMED_OUT: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_TIMED_OUT"); break; case APP_CONTROL_ERROR_PERMISSION_DENIED: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_PERMISSION_DENIED"); break; default: iotjs_bridge_set_err(hbridge, "APP_CONTROL_ERROR_UNKNOWN"); break; } return IOTJS_ERROR_RESULT_FAILED; } bundle_free(b); app_control_destroy(app_control); return IOTJS_ERROR_NONE; }