在修改了BOOKMARK NVRAM后,如何不格式化手机更新成新的预置书签
来源:互联网 发布:万达电商 淘宝卖 编辑:程序博客网 时间:2024/04/24 18:16
请增加和修改下面函数。
//add
void srv_brw_bookmark_delete_all_default_files(U8 *selected_folder_path)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
FS_HANDLE handle;
FS_DOSDirEntry file_info;
U8 filename[(SRV_BRW_BKM_MAX_FILE_NAME_LEN + 1) * ENCODING_LENGTH];
U8 *pattern;
U8 *file_path;
FS_Pattern_Struct TestArray[1];
S32 error_code;
U8 num_of_patterns;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
num_of_patterns = 1;
pattern = (U8*) OslMalloc((SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
memset(pattern, 0, (SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
file_path = (U8*) OslMalloc((SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
memset(file_path, 0, (SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
mmi_ucs2cpy((S8*) pattern, (S8*) selected_folder_path);
mmi_ucs2cat((S8*) pattern, (S8*) L"\\*");
kal_wstrcpy(TestArray[0].Pattern, SRV_BRW_BKM_FILE_SEARCH_PATTERN_DFT);
if ((handle = FS_FindFirstN(
(UI_string_type) pattern,
TestArray,
num_of_patterns,
0,
0,
0,
&file_info,
(U16*) filename,
(SRV_BRW_BKM_MAX_FILE_NAME_LEN + 1) * ENCODING_LENGTH,
0,
0)) >= 0)
{
do
{
mmi_ucs2cpy((S8*) file_path, (S8*) selected_folder_path);
mmi_ucs2cat((S8*) file_path, (S8*) L"\\");
mmi_ucs2cat((S8*) file_path, (S8*) filename);
error_code = FS_Delete((UI_string_type) file_path);
} while ((FS_FindNextN(
handle,
TestArray,
num_of_patterns,
0,
&file_info,
(UI_string_type) filename,
(SRV_BRW_BKM_MAX_FILE_NAME_LEN + 1) * ENCODING_LENGTH,
0) >= 0));
FS_FindClose(handle);
}
OslMfree(pattern);
OslMfree(file_path);
}
//add
void createDefaultBkm()
{
U8 index;
FS_HANDLE file_handle;
U16 record_count;
S16 NvramError;
S32 error_code;
srv_brw_default_bookmark_struct *def_bkm_data;
nvram_wap_bookmark_struct* def_bkms_list;
def_bkm_data = (srv_brw_default_bookmark_struct*)
OslMalloc(sizeof(srv_brw_default_bookmark_struct));
memset(def_bkm_data, 0, sizeof(srv_brw_default_bookmark_struct));
def_bkms_list = (nvram_wap_bookmark_struct*) OslMalloc(NVRAM_WAP_BOOKMARK_MAX_ENTRY_IN_ONE_RECORD *
sizeof(nvram_wap_bookmark_struct));
/*Reading default bookmarks from NVRAM*/
for (record_count = 1; record_count <= NVRAM_EF_WAP_BOOKMARK_LIST_TOTAL_RECORDS; record_count++)
{
memset(def_bkms_list, 0, NVRAM_WAP_BOOKMARK_MAX_ENTRY_IN_ONE_RECORD *
sizeof(nvram_wap_bookmark_struct));
ReadRecord(
NVRAM_EF_WAP_BOOKMARK_LIST_LID,
record_count,
def_bkms_list,
NVRAM_EF_WAP_BOOKMARK_LIST_SIZE,
&NvramError);
/* create bookmark file for each available URL */
for (index = 0; index < NVRAM_WAP_BOOKMARK_MAX_ENTRY_IN_ONE_RECORD; index++)
{
if (!def_bkms_list[index].empty)
{
if(def_bkms_list[index].dcs_flag == 0)
{
if (mmi_chset_utf8_strlen((U8*)def_bkms_list[index].title) >
SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN)
{
continue;
}
else
{
mmi_chset_utf8_to_ucs2_string(
(U8*) def_bkm_data->title,
(SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN + 1) * ENCODING_LENGTH,
(U8*) def_bkms_list[index].title);
}
}
else if (def_bkms_list[index].dcs_flag == 1)
{
if (mmi_ucs2strlen((S8*)def_bkms_list[index].title) >
SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN)
{
continue;
}
else
{
mmi_ucs2ncpy((S8*)def_bkm_data->title, (S8*) def_bkms_list[index].title,
SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN + 1);
}
}
mmi_asc_to_ucs2((S8*) def_bkm_data->url, (S8*) def_bkms_list[index].url);
srv_brw_bookmarks_create_full_file_path((S8*) g_srv_brw_cntx.default_folder_path,
(S8*) def_bkm_data->title,
(S8*) SRV_BRW_BKM_FILE_EXTN_DFT_STRING,
(S8*) def_bkm_data->file_path);
file_handle = FS_Open((UI_string_type) def_bkm_data->file_path, FS_READ_ONLY);
if (file_handle < 0)
{
file_handle = FS_Open((UI_string_type) def_bkm_data->file_path, FS_READ_WRITE |
FS_CREATE);
if (file_handle >= 0)
{
if (mmi_vbkm_writer_convert_file_to_internal_format(file_handle, def_bkm_data->url) == FS_NO_ERROR)
{
FS_Close(file_handle);
}
else
{
FS_Close(file_handle);
FS_Delete((UI_string_type) def_bkm_data->file_path);
}
}
}
else
{
FS_Close(file_handle);
}
}
}
}
OslMfree(def_bkm_data);
OslMfree(def_bkms_list);
}
//modify
void srv_brw_bookmarks_create_default_bkms(void)
{
#ifdef BRW_DEFAULT_BKM_SUPPORT
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 index;
FS_HANDLE file_handle;
U16 record_count;
S16 NvramError;
S32 error_code;
srv_brw_default_bookmark_struct *def_bkm_data;
nvram_wap_bookmark_struct* def_bkms_list;
WCHAR *folder_path;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* create bookmark folder if it is not being created */
folder_path = (WCHAR*)OslMalloc((mmi_ucs2strlen((S8*) g_srv_brw_cntx.default_folder_path) + 1) *
ENCODING_LENGTH);
mmi_ucs2cpy((S8*) folder_path, (S8*) g_srv_brw_cntx.default_folder_path);
file_handle = FS_Open((const WCHAR*) folder_path, FS_READ_ONLY | FS_OPEN_DIR);
if (file_handle >= FS_NO_ERROR)
{
FS_Close(file_handle);
srv_brw_bookmark_delete_all_default_files(folder_path);//lzt
createDefaultBkm();//lzt
OslMfree(folder_path);
return; /* don't re-create default bookmarks if already done once */
}
else
{
error_code = FS_CreateDir((const WCHAR*) folder_path);
}
OslMfree(folder_path);----------------------
….
}
针对09B V02版本:
解法类似,对应的接口为: mmi_brw_bookmarks_create_default_bkms
//add
void srv_brw_bookmark_delete_all_default_files(U8 *selected_folder_path)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
FS_HANDLE handle;
FS_DOSDirEntry file_info;
U8 filename[(SRV_BRW_BKM_MAX_FILE_NAME_LEN + 1) * ENCODING_LENGTH];
U8 *pattern;
U8 *file_path;
FS_Pattern_Struct TestArray[1];
S32 error_code;
U8 num_of_patterns;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
num_of_patterns = 1;
pattern = (U8*) OslMalloc((SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
memset(pattern, 0, (SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
file_path = (U8*) OslMalloc((SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
memset(file_path, 0, (SRV_BRW_BKM_MAX_PATH_LEN + 1) * ENCODING_LENGTH);
mmi_ucs2cpy((S8*) pattern, (S8*) selected_folder_path);
mmi_ucs2cat((S8*) pattern, (S8*) L"\\*");
kal_wstrcpy(TestArray[0].Pattern, SRV_BRW_BKM_FILE_SEARCH_PATTERN_DFT);
if ((handle = FS_FindFirstN(
(UI_string_type) pattern,
TestArray,
num_of_patterns,
0,
0,
0,
&file_info,
(U16*) filename,
(SRV_BRW_BKM_MAX_FILE_NAME_LEN + 1) * ENCODING_LENGTH,
0,
0)) >= 0)
{
do
{
mmi_ucs2cpy((S8*) file_path, (S8*) selected_folder_path);
mmi_ucs2cat((S8*) file_path, (S8*) L"\\");
mmi_ucs2cat((S8*) file_path, (S8*) filename);
error_code = FS_Delete((UI_string_type) file_path);
} while ((FS_FindNextN(
handle,
TestArray,
num_of_patterns,
0,
&file_info,
(UI_string_type) filename,
(SRV_BRW_BKM_MAX_FILE_NAME_LEN + 1) * ENCODING_LENGTH,
0) >= 0));
FS_FindClose(handle);
}
OslMfree(pattern);
OslMfree(file_path);
}
//add
void createDefaultBkm()
{
U8 index;
FS_HANDLE file_handle;
U16 record_count;
S16 NvramError;
S32 error_code;
srv_brw_default_bookmark_struct *def_bkm_data;
nvram_wap_bookmark_struct* def_bkms_list;
def_bkm_data = (srv_brw_default_bookmark_struct*)
OslMalloc(sizeof(srv_brw_default_bookmark_struct));
memset(def_bkm_data, 0, sizeof(srv_brw_default_bookmark_struct));
def_bkms_list = (nvram_wap_bookmark_struct*) OslMalloc(NVRAM_WAP_BOOKMARK_MAX_ENTRY_IN_ONE_RECORD *
sizeof(nvram_wap_bookmark_struct));
/*Reading default bookmarks from NVRAM*/
for (record_count = 1; record_count <= NVRAM_EF_WAP_BOOKMARK_LIST_TOTAL_RECORDS; record_count++)
{
memset(def_bkms_list, 0, NVRAM_WAP_BOOKMARK_MAX_ENTRY_IN_ONE_RECORD *
sizeof(nvram_wap_bookmark_struct));
ReadRecord(
NVRAM_EF_WAP_BOOKMARK_LIST_LID,
record_count,
def_bkms_list,
NVRAM_EF_WAP_BOOKMARK_LIST_SIZE,
&NvramError);
/* create bookmark file for each available URL */
for (index = 0; index < NVRAM_WAP_BOOKMARK_MAX_ENTRY_IN_ONE_RECORD; index++)
{
if (!def_bkms_list[index].empty)
{
if(def_bkms_list[index].dcs_flag == 0)
{
if (mmi_chset_utf8_strlen((U8*)def_bkms_list[index].title) >
SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN)
{
continue;
}
else
{
mmi_chset_utf8_to_ucs2_string(
(U8*) def_bkm_data->title,
(SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN + 1) * ENCODING_LENGTH,
(U8*) def_bkms_list[index].title);
}
}
else if (def_bkms_list[index].dcs_flag == 1)
{
if (mmi_ucs2strlen((S8*)def_bkms_list[index].title) >
SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN)
{
continue;
}
else
{
mmi_ucs2ncpy((S8*)def_bkm_data->title, (S8*) def_bkms_list[index].title,
SRV_BRW_BKM_MAX_INPUT_FILE_NAME_LEN + 1);
}
}
mmi_asc_to_ucs2((S8*) def_bkm_data->url, (S8*) def_bkms_list[index].url);
srv_brw_bookmarks_create_full_file_path((S8*) g_srv_brw_cntx.default_folder_path,
(S8*) def_bkm_data->title,
(S8*) SRV_BRW_BKM_FILE_EXTN_DFT_STRING,
(S8*) def_bkm_data->file_path);
file_handle = FS_Open((UI_string_type) def_bkm_data->file_path, FS_READ_ONLY);
if (file_handle < 0)
{
file_handle = FS_Open((UI_string_type) def_bkm_data->file_path, FS_READ_WRITE |
FS_CREATE);
if (file_handle >= 0)
{
if (mmi_vbkm_writer_convert_file_to_internal_format(file_handle, def_bkm_data->url) == FS_NO_ERROR)
{
FS_Close(file_handle);
}
else
{
FS_Close(file_handle);
FS_Delete((UI_string_type) def_bkm_data->file_path);
}
}
}
else
{
FS_Close(file_handle);
}
}
}
}
OslMfree(def_bkm_data);
OslMfree(def_bkms_list);
}
//modify
void srv_brw_bookmarks_create_default_bkms(void)
{
#ifdef BRW_DEFAULT_BKM_SUPPORT
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 index;
FS_HANDLE file_handle;
U16 record_count;
S16 NvramError;
S32 error_code;
srv_brw_default_bookmark_struct *def_bkm_data;
nvram_wap_bookmark_struct* def_bkms_list;
WCHAR *folder_path;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* create bookmark folder if it is not being created */
folder_path = (WCHAR*)OslMalloc((mmi_ucs2strlen((S8*) g_srv_brw_cntx.default_folder_path) + 1) *
ENCODING_LENGTH);
mmi_ucs2cpy((S8*) folder_path, (S8*) g_srv_brw_cntx.default_folder_path);
file_handle = FS_Open((const WCHAR*) folder_path, FS_READ_ONLY | FS_OPEN_DIR);
if (file_handle >= FS_NO_ERROR)
{
FS_Close(file_handle);
srv_brw_bookmark_delete_all_default_files(folder_path);//lzt
createDefaultBkm();//lzt
OslMfree(folder_path);
return; /* don't re-create default bookmarks if already done once */
}
else
{
error_code = FS_CreateDir((const WCHAR*) folder_path);
}
OslMfree(folder_path);----------------------
….
}
针对09B V02版本:
解法类似,对应的接口为: mmi_brw_bookmarks_create_default_bkms
- 在修改了BOOKMARK NVRAM后,如何不格式化手机更新成新的预置书签
- 如何将Bookmark title预置为中文
- 如何在修改问题时,不引入新的问题?
- 保存了火狐密钥,如何在新电脑上的最新版本上导入老的书签?
- Symbian(Add BookMark)添加自己的书签
- mybookmark = mrc.bookmark----------书签的作用
- VSCode 书签的使用 (BookMark)
- 如何预置Android 手机 APK
- 如何预置Android 手机 APK
- 如何预置Android 手机 APK
- 如何预置Android 手机 APK
- 源泉书签今日更新:在用户注册后,会显示首页的超链接,操作更加人性化
- 关于书签(BookMark)操作
- 关于书签(BookMark)操作
- Emacs Bookmark 书签
- thinkpad e530 格式化后在PE不识别的解决方法
- opera浏览器导入的书签如何显示在书签栏
- VS菜单修改后不更新的问题
- 配置User Agent
- UA profile介绍
- 11B SLIM版本不插T卡如何在浏览器中显示图片
- Browser一段时间无数据传输后,需要自动断开网络
- 修改Bookmark对应的default value后,重编modis,修改未生效
- 在修改了BOOKMARK NVRAM后,如何不格式化手机更新成新的预置书签
- 实战android菜单项之XML加载菜单与动态菜单项
- Apache
- javascript设计模式
- 使用js的encodeURIComponent编码后,java解析乱码
- 报表ReportViewer显示rdlc资源的图片
- Hadoop
- Hadoop Namenode不能启动(dfs/name is in an inconsistent state
- 如何以文本方式通过彩信、短信及Email发送书签