当前位置:  编程技术>移动开发
本页文章导读:
    ▪远程上载音乐为手机铃声核心代码(RingtoneManager与铃声存放路径)        远程下载音乐为手机铃声核心代码(RingtoneManager与铃声存放路径)第一步 需判断/sdcard/music/ringtones是否存在文件夹。        File file = new File(/sdcard/music/ringtones);       if ( !file.exists() ){  .........
    ▪ 怎么让app支持文件共享        如何让app支持文件共享应用程序可以使用文件共享让用户访问程序的用户数据文件。文件共享允许应用程序通过iTunes向用户显露应用程序/Documents目录的内容。这样,用户就可以在iPad和桌面计.........
    ▪ Tiny6410的OpenCV2.4.2移栽笔记       Tiny6410的OpenCV2.4.2移植笔记关于OpenCV在ARM上的移植最经典的应该就是这篇:编译编译OpenCV for arm-linux 去年在什么都不懂的情况下移植的时候也主要是靠这篇文章,写得很详细,如果你觉得还不.........

[1]远程上载音乐为手机铃声核心代码(RingtoneManager与铃声存放路径)
    来源: 互联网  发布时间: 2014-02-18
远程下载音乐为手机铃声核心代码(RingtoneManager与铃声存放路径)

第一步 需判断/sdcard/music/ringtones是否存在文件夹。

       File file = new File(/sdcard/music/ringtones);

      if ( !file.exists() ){

            if (file.mkdirs ){

                  }

       }else{

       }

第二步 取得用户输入的文件路径的文件拓展名与文件名

      String strExt = strURL.substring( strURL.lastIndexOf(" . ")+1,strURL.length()).toLowerCase();

      String strNam = StrURL.substring (strURL.lastIndexOf(" / ")+1,strURL.lastIndexOf(".");

第三步 创建线程在线程中取得远程文件

      Runnable r = new Runnable{

            public void run(){

                 try{

                       getDateSource(strPath);//调用自己定义的取得文件的方法 此方法相当于下载资源

                 }catch(){

                }

           }

     }

    new Thread(r).start();

    public void  getDateSource(String strPath) {

          if( ! URLUtil.isNetworkUrl(/blog_article/strPath/index.html)){  //判断路径是否符合网址规则

 

          }else{

                URL  url = new URL(strPath);

                URLConnection conn = url.openConnection();

                conn.connect();

                InputStream in = conn.getInputStream();

                File myfile = new File("/sdcard/music/ringtones" , strExt +" . " +strNam);//创建暂存文件

                String currentFile = myfile.getAbsolutePath();//得到所创建文件的路径

                FileOutPutStream out = new FileOutPutStream( myfile );

                byte b [] = new byte [128] ;

                do{

                    int  inread = in.read(b);

                    if( inread<= 0 ){

                         break;

                     }

                    out.write(b,0,inread);

                 }while(true);

                 //开启RingtoneManager进行铃声选择

                  string uri = null;

                  Intent intent = new  Intent(RingtoneManager.ACTION_RINGTONE_PICKER);//设定铃声

                  /* 设定显示铃声的文件夹 */
                  intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);
                   /* 设定显示铃声开头 */
                  intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设定铃声");
                   if (uri != null)
                     {
                           intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,  Uri.parse(uri));
                     } else
                       {
                            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null);
                      }
                            startActivityForResult(intent, RINGTONE_PICKED); 

                    in .close();

          }

    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data)
     {
        if (resultCode != RESULT_OK)
       {
         return;
       }
        switch (requestCode)
       {
        case (RINGTONE_PICKED):
          try
            {
              Uri pickedUri = data .getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
             if (pickedUri != null)
             {
            RingtoneManager.setActualDefaultRingtoneUri(EX08_09.this,  RingtoneManager.TYPE_RINGTONE, pickedUri);
             }
            } catch (Exception e)
            {
             e.printStackTrace();
            }
            break;
          default:
           break;
       }

        super.onActivityResult(requestCode, resultCode, data);
    }


    
[2] 怎么让app支持文件共享
    来源: 互联网  发布时间: 2014-02-18
如何让app支持文件共享

应用程序可以使用文件共享让用户访问程序的用户数据文件。文件共享允许应用程序通过iTunes向用户显露应用程序/Documents目录的内容。这样,用户就可以在iPad和桌面计算机来回移动文件。

您可以通过如下步骤来让应用程序支持文件共享:

  • 在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。

  • 将您希望共享的文件放在应用程序的Documents目录。

  • 一旦设备插入到用户计算机,iTunes 9.1就会在选中设备的Apps标签中显示一个File Sharing区域。

  • 此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。

  • 如果应用程序支持文件共享,当文件添加到Documents目录后,应用程序应该能够识别并做出适当响应。例如说,应用程序可以将新文件的内容显示界面上。请不要向用户展现目录的文件列表并询问他们希望对文件执行什么操作。

    如需进一步了解 UIFileSharingEnabled键,可以参考苹果官方信息属性列表文档。



        
    [3] Tiny6410的OpenCV2.4.2移栽笔记
        来源: 互联网  发布时间: 2014-02-18
    Tiny6410的OpenCV2.4.2移植笔记

    关于OpenCV在ARM上的移植最经典的应该就是这篇:编译编译OpenCV for arm-linux

    去年在什么都不懂的情况下移植的时候也主要是靠这篇文章,写得很详细,如果你觉得还不够详细的话,推荐个带图的:opencv2.3.1在arm端的移植

    这篇写得也不错:Linux下移植OpenCV+Qt到ARM(Tiny6410)总结

    我的环境是Ubuntu12.04,板子是友善之臂的tiny6410。

    首先当然是装好arm-linux-gcc,配置环境变量,输入arm-linux-gcc -v有输出,这步就完成了。然后是cmake,比较方便的是用带界面的cmake-gui,要注意的地方是CMAKEINSTALLPREFIX和WITHTIFF还有CMAKEEXELINKERFLAGS。

    第一个参数需要注意是因为我们编译的库是适用于ARM的,不应该直接放在/usr/local里,否则如果装了x86的OpenCV会有冲突,比如改成/usr/local/opencv-arm。第二个参数一般情况下需要去掉勾,因为似乎默认情况下ubuntu是没有这个支持的,要选上得自己装些什么东西。第三个参数是因为OpenCV需要这两个库的支持?我现在也还不太明白,总之加上-lrt和-lpthread就不会报错了。其它参数保持原状基本都不会报错。

    cmake好后下一步是make,对于双核的机器加上-j4参数速度会快很多,但是也发烫,在系统监视器里看到四个线程的CPU都是接近100%,风扇一直呼呼地响。

    然后是配置编译环境了,好像在2.3以后OpenCV的x86版安装好后都会有pkgconfig的.pc文件。//2.3以前的版本不清楚

    所以比较方便的就是用pkgconfig来配置了,它的.pc文件是在/usr/local/lib/pkgconfig下面。这是适用于PC版本的OpenCV的(因为之前已经安装好了x86的OpenCV)。但是只要把那第一行的prefix路径改成ARM版OpenCV的安装路径(也就是上面CMAKEINSTALLPREFIX参数的值)就可以直接用了。opencv2.3.1在arm端的移植这篇帖子说再Libs里要加上-lrt -lpthread参数,我的环境下似乎不需要,但是加上也没什么问题。

    这样配置好后,arm-linux-gcc编译的时候加上参数`pkg-config --cflags --libs opencv-arm`就行了,比如arm-linux-gcc `pkg-config --cflags --libs opencv-arm` test.c -o test。//在这个情况下.pc文件名是opencv-arm,注意是两个反引号。我用的主要是Qt,所以在.pro文件里加上:

        unix {
            CONFIG += link_pkgconfig
            PKGCONFIG += /usr/local/lib/pkgconfig/opencv-arm.pc
        }

    但是编译成功后可能会显示一些警告,比如:

        ../../lib/libopencv_core.so, needed by /usr/local/opencv-arm/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
    

    这个警告在我的情况下只要把opencv-arm/lib里的.so文件全部放到/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib下面就可以解决,但事实上不管这条警告也不会出什么问题,不会影响到程序的运行。//去年移植的时候就一直没管

    但是耗费我四天的根本就不是这些问题有木有啊!我要开始吐槽了有木有啊!

    首先要吐槽一下u盘,有个以前编译好的程序放在u盘上一直不能运行,报错

        ../../lib/libopencv_core.so, needed by /usr/local/opencv-arm/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
    

    和编译时那个警告一样,害得我以为是那个警告必须解决掉。后来折腾了好久发现只要把程序拷到板子的存储介质上就直接能运行了!尼玛啊是文件系统还是权限的神马问题啊!于是我就换成用nfs挂载了。

    现在去年编译的那个程序是能运行了,可是新编译的程序都不能和OpenCV库连上,也是报相同的错,好吧,我试过把.so文件放在/lib下,放在/usr/local/opencv-arm/lib下,两个都放,甚至还试过新建好多个文件夹,放在/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib下,结果都一样!只有老的程序能运行,新编译的都不行。后来脑袋终于开窍了,既然老程序可以运行,说明我移植的OpenCV库没有问题。于是我尝试直接用armm-linux-gcc编译了一个简单的程序,发现运行正常?!然后不知什么想法让我把新编译的程序拷贝到/mnt下,也就是nfs挂载的那个目录,神奇的事情发生了,它正常运行了!!!

    那么,这究竟是什么原理呢?我到现在还没搞明白。nfs挂载以后,所有挂载的文件都相当于自己原本文件系统里的文件么?还是有权限什么的问题呢?


        
    最新技术文章:
    ▪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