Android调用系统自带的文件管理器进行文件选择并读取
先调用:
intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); //设置类型,我这里是任意类型,任意后缀的可以这样写。 intent.addCategory(Intent.CATEGORY_OPENABLE); // 只有设置了这个,返回的uri才能使用 getContentResolver().openInputStream(uri) 打开。 startActivityForResult(intent, 1);
再在 onActivityResult 里做对uri相应的操作(目前只能读操作)
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(resultCode == Activity.RESULT_OK && data != null) { try { readBytes(data.getData()); } catch (IOException e) { e.printStackTrace(); } } } public byte[] readBytes(Uri inUri) throws IOException { InputStream inputStream = getContentResolver().openInputStream(inUri); // this dynamically extends to take the bytes you read ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); // this is storage overwritten on each iteration with bytes int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; // we need to know how may bytes were read to write them to the byteBuffer int len = 0; while ((len = inputStream.read(buffer)) != -1) { byteBuffer.write(buffer, 0, len); Log.i("welhzh_f", "" + len); } // and then we can return your byte array. return byteBuffer.toByteArray(); }
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
支付宝扫一扫捐赠
支付宝扫一扫捐赠
![支付宝扫一扫捐赠](https://images.cnblogs.com/cnblogs_com/welhzh/2159800/o_220512091701_hzh_alipay.jpg)
微信公众号: 共鸣圈
欢迎讨论,邮件: 924948$qq.com 请把$改成@
QQ群:263132197
QQ: 924948