`
zhangfan822
  • 浏览: 254086 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

android中intent带Uri传输时中文的乱码问题 .

 
阅读更多

URl用中文去访问是没有问题的,因为android在内部进行了转码。 但是从URL获取文件名的时候,因为android已经转过码,所以得到的就是乱码了。这时候需要用到android提供的方法Uri.decode()获取正确的中文路径。 此方法返回的路径带有:file:// 所以,需要截取一下才能用

工作时遇到一个问题,我在VideoActivty中找到一个视频文件,启动Gallery3D中的MovieView来进行播放,然后在MovieView端得到此文件的路径。我当时传进了一个:

   String mpath = "/mnt/sdcard/叶问2.mp4";

的路径,其中文件名是中文的。然后我在MovieView中得到的文件名竟然是乱码,最开始我是这么处理的:

VideoActivty处的代码大致为:

        String mpath = "/mnt/sdcard/叶问2.mp4";
        String type = "video";
        File f = new File(mpath);
        Uri uri = Uri.fromFile(f);
        Intent intent = new Intent();
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setAction(android.content.Intent.ACTION_VIEW);
        intent.setDataAndType(uri, type);
        this.startActivity(intent);

 其实URI已经考虑到了这种情况。琢磨后用了这种方式得到了中文路径。

        Intent intent2 = getIntent();
        Uri mUri = intent2.getData();
        String path = intent2.getDataString();
        path = Uri.decode(path).substring(7, path.length());
        android.util.Log.d("URI", "path is " + path);

 Uri.decode函数Google已经帮我们实现好了。

分享到:
评论

相关推荐

    Android中Intent的Uri使用

    本文件介绍的是Anroid中Intent的使用方法,从谷歌中搜索内容;浏览网页;显示地图;路径规划;拨打电话;发送短信等简单功能实现

    Android 常用的Intent的URI及示例

    Android 常用的Intent的URI及示例.txt

    android Intent实例

    Intent在Android应用开发中,占有很大的分量,关于Intent在Android中的作用在网络上已经有很多资料了,这里不再累赘,本人喜欢直来直去。在网上看到很多关于Intent的资料,说那么多,你也许还是一头雾水,到底如何...

    Android Intent调用 Uri的方法总结

    Android Intent调用 Uri的方法总结 //调用浏览器 Uri uri = Uri.parse(); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it); //显示某个坐标在地图上 Uri uri = Uri.parse(geo:38.899533,-...

    Andriod接收广播的类

    恢复已经停止的更新下载。 'android.server.checkin.FOTA_RESTART' 通过 OTA 下载并安装操作系统更新。 'android.server.checkin.FOTA_UPDATE' 用户按下了'Media Button'。...'android.intent.action.PACKAGE_ADDED'

    android.intent.action.TIME_TICK

    接收系统的时间流逝的广播,屏幕开启关闭的广播,电量改变的广播。这些广播在清单文件里注册时,看不到效果。在这个例子中通过在一个服务里面用代码注册的方式,成功接收了这些广播。

    android各种文件的intent

    Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build(); Intent intent = new Intent("android.intent.action.VIEW"); ...

    Android利用Intent启动和关闭Activity

    主要为大家详细介绍了Android利用Intent启动和关闭Activity的相关操作,感兴趣的小伙伴们可以参考一下

    Android中Intent Demo

    Activity之间使用Intent传递数据,http://blog.csdn.net/huiblog/article/details/53222810

    Android+Intent机制实例详解.doc

    Android+Intent机制实例详解 Android+Intent 大家不得不看啊!

    Android Intent传递数据大小限制详解

    前言 在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化...在Intent中传入一个Parcelable对象;例如传入一个bitmap对象。 代

    android各组件详解- Intent.

    android各组件详解- Intent.

    android----intent

    android intent

    Android源码——Intent切换.zip

    Android源码——Intent切换.zip

    常用到的Intent的URI及其示例

    常用到的Intent的URI及其示例,包含了大部分应用中用到的共用Intent

    AppInstall.rar

    把其它app 放在assets/ 下面打包, 通过系统调用安装这个app //申请安装未知应用权限 ... intent.setDataAndType(uri, "application/vnd.android.package-archive"); Log.i(TAG,"btnAppInstallClick uri="+uri);

    android activityIntent 传值 传对象

    android activityIntent 传值 传对象

    打开附件.java

    Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromFile(new File...

    Android+Intent机制实例详解.rar

    Android+Intent机制实例详解.rar,详细的介绍了,android中的intent知识,可以下载下来看看哟

Global site tag (gtag.js) - Google Analytics