当前位置:  编程技术>移动开发
本页文章导读:
    ▪Qt跟S60环境设置管理比较        Qt和S60环境设置管理比较 Qt和S60环境设置管理比较 From Forum Nokia Wiki 平台:S60 3rd Edition FP2, S60 5th Edition 类别:Qt 子类别:Base/System 关键字:QSettings 概述 本文给出Symbian OS和Qt之间环境配.........
    ▪ 设立铃声后继续相关操作        设置铃声后继续相关操作 Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Sel.........
    ▪ 冲破wap网关限制       突破wap网关限制 原因:就目前找到的资料wap网关限制大文件的下载,是因为wap网关在手机客户端拿到文件之前就已经知道要下载的文件大小,这是因为文件的大小从http协议中可以得到,ht.........

[1]Qt跟S60环境设置管理比较
    来源: 互联网  发布时间: 2014-02-18
Qt和S60环境设置管理比较
Qt和S60环境设置管理比较 From Forum Nokia Wiki
  • 平台:S60 3rd Edition FP2, S60 5th Edition
  • 类别:Qt
  • 子类别:Base/System
  • 关键字:QSettings

概述

本文给出Symbian OS和Qt之间环境配置管理的比较。下面也给出了创建、设置和获取环境设置值的样例代码。

描述

在Symbian和Qt中,环境设置都是以键/值对的形式储存。然而二者的环境设置文件保存路径是不同的。

操作 S60/Symbian OS Qt 环境设置机制 中央仓库 Conf文件 键的创建 通过xls或confml预先定义环境设置键,并被赋予缺省值。 环境设置从应用程序动态创建,并储存在.conf文件中。 环境配置文件的存储格式 平台创建.cre文件,应用程序在这个文件中储存/恢复环境值。.cre文件不是人类可读的格式。 不生成.cre文件。直接存储在人类可读的.conf文件。 环境配置键的组织 环境配置无层次结构 可在键中维护层次结构。例如:所有从属于UI的环境配置可作为子键放在主UI键下。 访问以平台相关格式储存的环境设置 可访问平台或其它应用程序环境设置,因为所有的配置都是.cre格式。 通过扩展类如XQSettingsManager可访问储存在中央仓库的键/值。 类 CRepository QSettings 创建环境配置类的实例 CRepository::NewL QSettings settings("CompName", "AppName"); 含有 CompName 的目录将被创建,且conf文件创建于该目录,名称为 AppName 。 设置值 CRepository::Set QSettings::setValue 获取值 CRepository::Get QSettings::value 环境设置改变通知 是可行的,借助 CCenRepNotifyHandler 。 无直接类检测 QSettings 键值的变化。通过 XQSettingsManager 及其关联类来检测cenrep键变化是可行的。

 

方案

在Qt应用中,你可以或者使用 QSettings ,或者继续使用 cenrep (通过 CRepository 类或更好的移动扩展Mobile_Extensions#13._Settings_Manager_API)。 QSettings 类提供了平台无关的持久化机制。

下例演示了在Qt中环境设置的创建:

MyApplication::MyApplication(QWidget *parent)
    : QWidget(parent) 
 {
 //The company name and application name need to be passed as a parameter.
 //The path of storing the settings is based on these input parameters
 QSettings setting(“Company", "MyApplication");
 //Setting an int value
 QVariant value = 10; //or we can also assign int value  = 10 
 setting.setValue("Engine/TimeOutPeriod", value);
 //Setting a string value
 QString string (“This is sample”); //or we can also assign QVariant string(“This is sample”)
 setting.setValue(“Engine/MessageTitle”, string);
 //Getting an int value;
 int settingval =  setting.value("Engine/TimeOutPeriod ").toInt();
 //Getting a string value
 QString title = setting.value("Engine/MessageTitle ").toString();
 }

    
[2] 设立铃声后继续相关操作
    来源: 互联网  发布时间: 2014-02-18
设置铃声后继续相关操作

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone"); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null); 
this.startActivityForResult(intent, 5); 

然后

@Override 
 protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) 
 { 
     if (resultCode == Activity.RESULT_OK && requestCode == 5) 
     { 
          Uri uri = Intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); 
 
          if (uri != null) 
          { 
              this.chosenRingtone = uri.toString(); 
          } 
          else 
          { 
              this.chosenRingtone = null; 
          } 
      }             
  } 


    
[3] 冲破wap网关限制
    来源: 互联网  发布时间: 2014-02-18
突破wap网关限制
原因:就目前找到的资料wap网关限制大文件的下载,是因为wap网关在手机客户端拿到文件之前就已经知道要下载的文件大小,这是因为文件的大小从http协议中可以得到,http头中保存的不止文件的大小,还有文件的类型等一些列信息,按照现在的猜测,网关限制大文件下载是根据文件的content-length来判断文件的大小。

解决思路:在wap网关和文件服务器之间加一层代理服务器,网关请求过来只到代理服务器,而不会到真正访问到你的资源你服务器。代理服务器按照客户端的请求参数每次去文件服务器上拿取文件。

技术关键点:

1.  代理服务器与文件服务器之间连接的建立

2.  输入流和输出流,字节偏移量的设定(代理服务器)

3.  代理服务器输出文件类型

代码实现:

public class DownServlet extends HttpServlet {

    private static final long serialVersionUID = 1332534778678L;

    private static final int byte_size = 1024;



    protected void service(HttpServletRequest request,

           HttpServletResponse response) throws ServletException, IOException {

       response.setContentLength(byte_size); // 输出到客户端的文件大小

       String fileName = "default.dmh";

       response.setContentType("text/plain");

       response.setCharacterEncoding("utf-8");

       response.setHeader("Content-disposition", "attachment; filename="

              + fileName);                              // 设置文件头

       String url = request.getParameter("url");

       URL fileUrl = new URL(/blog_article/url/index.html);

       HttpURLConnection httpCon = (HttpURLConnection) fileUrl

              .openConnection();

//     System.out.println("before range.......... "+httpCon.getResponseCode());

       String sProperty = "bytes=10-" + byte_size;      // -后面表示要取多少数据

       httpCon.setRequestProperty("RANGE", sProperty); // 设置偏移量

       System.out.println("after range.......... "+httpCon.getResponseCode());

       InputStream in = httpCon.getInputStream();

       System.out.println("after InputStream.......... "+httpCon.getResponseCode());

       DataInputStream dis = new DataInputStream(in); // 重新包装输入流

       OutputStream out = response.getOutputStream(); // 从httpUrlConnecction中获得输出流

       byte[] b = new byte[byte_size];               // 读取多少

       dis.read(b);

       out.write(b);

       out.flush();

       out.close(); // 关闭输入输出流

       dis.close();

       in.close();

    }

}

出现问题:

1.  设置偏移量对文件服务器不起作用

经过测试发现只有代理服务器请求文件服务器上的静态文件时,设置偏移量才能使用,请求动态的则不行,猜测原因是请求动态的文件是因为设置的一些底层的参数到不了服务器底层,如:apache等。

2.  设置偏移量“-”后的大小

“-”后设置多少表是此次请求从偏移量之后取多少数据,此过程会限制httpCon.getInputStream()的大小,在使用read读取时读取的大小就是“-”后的大小,若读取过大则在后面补空格。

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3