做个一个Demo,里面有flv,ppt,swf等文件的一个列表,点击之后直接打开阅读。这些文件android好像不能直接打开,所以想用一个intent让合适的程序去打开,问题来了:以ppt文件为例,我放在/assets文件下时会抛“ActivityNotFoundException”,当我把文件放在“/mnt/sdcard/DCIM”下访问时却没有这个问题 Intent intent = new Intent("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//就这个uri可以,下面2个注释掉的都抛ActivityNotFoundException
Uri uri = Uri.fromFile(new File("/mnt/sdcard/DCIM/next_animation.ppt"));
//Uri uri = Uri.parse("android.resource://com.vone.app/" + R.raw.next_animation);
//Uri uri = Uri.parse("android.resource://com.vone.app/raw/next_animation.ppt");
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
startActivity(intent); 问题1:看到有说/assets和/res/raw对外是不可访问的,是这样吗?
问题2:难道我还要把文件再复制一份出来,不是很傻么?
问题3:contentprovider可行否?
i'm a newbie...
intent.addCategory("android.intent.category.DEFAULT");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//就这个uri可以,下面2个注释掉的都抛ActivityNotFoundException
Uri uri = Uri.fromFile(new File("/mnt/sdcard/DCIM/next_animation.ppt"));
//Uri uri = Uri.parse("android.resource://com.vone.app/" + R.raw.next_animation);
//Uri uri = Uri.parse("android.resource://com.vone.app/raw/next_animation.ppt");
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
startActivity(intent); 问题1:看到有说/assets和/res/raw对外是不可访问的,是这样吗?
问题2:难道我还要把文件再复制一份出来,不是很傻么?
问题3:contentprovider可行否?
i'm a newbie...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货