안녕하세요.
제가 2.4 SDK 로
아래 함수들을 적용해서 테스트 했더니 ,
system_settings_set_value_bool( system_settings_key_e key, bool value);
system_settings_set_value_int( system_settings_key_e key, int value);
SYSTEM_SETTINGS_ERROR_IO_ERROR 가 발생합니다.
Target 이나 emulator 모두 테스트 해봤으나 ,
두개 모두 동일하게 SYSTEM_SETTINGS_ERROR_IO_ERROR 가 발생하고 있습니다.
해당 에러는 어떤 경우에 발생하는건가요? 위의 함수들을 이용하기전 사전 작업이 필요한것이 있나요?
제가 사용한 시료는 Z3 이고 IDE 버전은
Tizen SDK
Version : 2.4.0b
Build id : 20150721-1437
입니다.
제 코드는 아래와 같습니다.
잘못된 부분이 있다면 조언 부탁드립니다.
감사합니다.
static char *_gl_text_get_cb(void *data, Evas_Object *obj, const char *part)
{
item_data_s *id = (item_data_s *)data;
char buf[MAX_STR] = {0,};
int ret = -1;
dlog_print(DLOG_ERROR,LOG_TAG,"%d- System_settings: %s : %d : %d ", id->index, _info_key[_ret_type[id->index].key], _ret_type[id->index].key, SYSTEM_SETTINGS_KEY_LOCKSCREEN_APP);
if (_ret_type[id->index].returns==_RET_BOOL)
{
system_settings_get_value_bool(_ret_type[id->index].key, &_bool_ret);
dlog_print(DLOG_ERROR, LOG_TAG, "%d", _bool_ret);
snprintf(buf, MAX_STR, "%s", _bool_ret ? "True" : "False");
}
else if (_ret_type[id->index].returns==_RET_INT)
{
system_settings_get_value_int (_ret_type[id->index].key, &_int_ret);
dlog_print(DLOG_ERROR, LOG_TAG, "%d", _int_ret);
snprintf(buf, MAX_STR, "%d", _int_ret);
}
else if (_ret_type[id->index].returns==_RET_STRING)
{
system_settings_get_value_string(_ret_type[id->index].key, &_string_ret);
dlog_print(DLOG_ERROR, LOG_TAG, "%s", _string_ret);
snprintf(buf, MAX_STR, "%s", _string_ret);
free(_string_ret);
}
else{
dlog_print(DLOG_ERROR, LOG_TAG, "Undefined return type");
return NULL;
}
if (!strcmp(part, "elm.text")){
return strdup(_info_key[_ret_type[id->index].key]);
}
else if (!strcmp(part, "elm.text.sub")){
return strdup(buf);
}
return NULL;
}
.......................................
dlog_print(DLOG_ERROR, LOG_TAG, "gc_gl_selected_cb index : %d %d %d" , id->index, _ret_type[id->index].returns, _ret_type[id->index].key);
if (_ret_type[id->index].returns==_RET_BOOL || _ret_type[id->index].returns==_RET_INT){
view_data->key = _ret_type[id->index].key;
view_data->ret_type = _ret_type[id->index].returns;
view_data->popup = _create_warning_popup(view_data, CHANGE_DATA_POPUP_TEXT);
}
.......................................
if(view_data->ret_type == _RET_BOOL){
results = system_settings_set_value_bool(view_data->key, !_bool_ret);
dlog_print(DLOG_ERROR, LOG_TAG, "~~~~~~~~~~~~~ %d %d %d ", view_data->key, !_bool_ret, results);
dlog_print(DLOG_ERROR, LOG_TAG, "--------- %d %d %d ", SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, SYSTEM_SETTINGS_ERROR_OUT_OF_MEMORY, SYSTEM_SETTINGS_ERROR_IO_ERROR );
dlog_print(DLOG_ERROR, LOG_TAG, "--------- %d %d %d ", SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED, SYSTEM_SETTINGS_ERROR_NOT_SUPPORTED, SYSTEM_SETTINGS_ERROR_LOCKSCREEN_APP_PASSWORD_MODE );
results = system_settings_get_value_bool(view_data->key, &_bool_ret);
dlog_print(DLOG_ERROR, LOG_TAG, "************ %d %d %d ", view_data->key, _bool_ret, results);
}else if(view_data->ret_type == _RET_INT){
results = system_settings_set_value_int(view_data->key, _int_ret+1);
dlog_print(DLOG_ERROR, LOG_TAG, "~~~~~~~~~~~~~ %d %d %d ", view_data->key, _int_ret+1, results);
dlog_print(DLOG_ERROR, LOG_TAG, "--------- %d %d %d ", SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, SYSTEM_SETTINGS_ERROR_IO_ERROR , SYSTEM_SETTINGS_ERROR_PERMISSION_DENIED);
results = system_settings_get_value_int(view_data->key, &_int_ret);
dlog_print(DLOG_ERROR, LOG_TAG, "************ %d %d %d ", view_data->key, _int_ret, results);
}