首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在android的activity result中获取文件大小

在Android的Activity Result中获取文件大小,可以通过以下步骤实现:

  1. 首先,在调用其他应用程序或系统组件来选择文件时,使用startActivityForResult()方法启动一个文件选择器的Intent。
  2. 在当前Activity中,重写onActivityResult()方法,以便在选择文件后获取返回的结果。
  3. onActivityResult()方法中,通过检查请求码和结果码来确定操作是否成功,并获取选择的文件的URI。
  4. 通过使用ContentResolver类的openInputStream()方法,打开文件的输入流。
  5. 使用InputStream对象获取文件的字节数,并计算文件大小。

以下是一个示例代码:

代码语言:java
复制
private static final int FILE_SELECT_CODE = 1;

// 启动文件选择器
private void showFileChooser() {
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    intent.setType("*/*"); // 选择所有文件类型
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(intent, FILE_SELECT_CODE);
}

// 处理文件选择结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == FILE_SELECT_CODE && resultCode == RESULT_OK) {
        Uri uri = data.getData();
        try {
            // 打开文件的输入流
            InputStream inputStream = getContentResolver().openInputStream(uri);
            // 获取文件大小
            int fileSize = inputStream.available();
            // 在这里可以使用文件大小进行后续操作
            // ...
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这个例子中,showFileChooser()方法用于启动文件选择器,onActivityResult()方法用于处理选择文件后的结果。在onActivityResult()方法中,通过getContentResolver().openInputStream(uri)打开文件的输入流,并使用inputStream.available()获取文件的大小。

注意:这个例子只是获取文件大小的基本示例,实际应用中可能需要进行错误处理、权限检查等其他操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 如何确定 App(Activity) 启动者

最近在帮忙定位一个问题,涉及到某个应用自动启动了,为了确定是谁调用,使用如下日志进行查看(注:为了简单考虑,下面的启动者为launcher) 1 2 3 4 (pre_release|✔) % adb...cat=[android.intent.category.HOME] flg=0x10000000 hwFlg=0x10 cmp=com.huawei.android.launcher/.unihome.UniHomeLauncher...u0_a70 含义 u0 默认手机第一个用户(可以通过设置里面的多用户新增和切换) a 代表app 70 代表着第70个应用 转换公式 简单而言,对应公式是这样 u0_a70 = “u0_” +...References https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/Process.java...https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/os/UserHandle.java

3.2K20

Android查看当前Activity是否销毁操作

进入到Android-sdkplatform-tools目录 命令行执行以下命令 adb shell dumpsys activity activity.txt 可以将当前四大组件 (Activity...(dumpsys activity activities) 补充知识:打开另一个Activity时前一个Activity被销毁问题解决办法 开发,一个Activity需要默认横屏全屏显示,...于是一个ActivitystartActivity之后, 再返回,发现上一个Activity被销毁,会重新请求一次数据。...在这里设置横屏方式是AndroidManifest.xml配置: <style name="FullScreenTheme" parent="AppTheme" <item name="<em>android</em>..., WindowManager.LayoutParams.FLAG_FULLSCREEN); 以上这篇<em>在</em><em>Android</em><em>中</em>查看当前<em>Activity</em>是否销毁<em>的</em>操作就是小编分享给大家<em>的</em>全部内容了,希望能给大家一个参考

1.6K20
  • 获取Android当前运行activity之UsageStatsManager

    前言:之前总结了如何获取当前界面正在运行APP包名,也就是上一个博客。这里做一下补充。...UsageStatsManager是用来统计app使用情况类,用于获取包含特定时间范围应用包使用情况统计信息;Android api21(即Android5.0引入);系统API稳定性好,Android5.0...app 我们将UsageStatsManager获取当前运行app相关代码写在一个Service,通过log打印结果,这样可以切换运行app,并实时看到结果,主要代码如下: private void...= null) { long now = System.currentTimeMillis(); //获取10分钟之内应用数据...(代码里是10分钟)最后一个活动应用包名,我运行了视频软件,一直视频界面但不去点它,10分钟后就捕获不到了。

    3.9K30

    Android 返回堆栈管理】打印 Android 当前运行 Activity 任务栈信息 | Activity 任务栈信息分析 | Activity 相同 Stack 不同 Task

    文章目录 一、打印 Android 当前运行 Activity 任务栈信息 二、Activity 任务栈信息分析 三、Activity 相同 Stack 不同 Task 情况 一、打印 Android...当前运行 Activity 任务栈信息 ---- 使用如下命令 , 打印 Android 手机 Activity 栈 : adb shell dumpsys activity activities...; 默认状态下 , 相同应用 , 打开 Activity , 其 Activity 都在同一个任务栈 ; 三、Activity 相同 Stack 不同 Task 情况 ---- 默认状态下..., 同一个应用启动两个 Activity 都在相同 Stack 相同 Task , 但是如下情况会出现 Activity 相同 Stack 不同 Task ; 参考 【Android...singleTask 启动模式 , 则新启动 Activity 放在另一个 Task ; 注意 : 两个 Activity 虽然不同 Task 任务 , 但还是相同 Stack 栈

    5.8K10

    Activity onCreate() 方法为什么获取 View 宽和高为0?

    Activity onCreate() 方法为什么获取 View 宽和高为0 ?...onCreate()方法我们尝试获取控件宽和高,却获取得是0,这是因为 View 绘制和 Activity 生命周期方法并不同步,即使 Activity 回调了 onCreate()、onStart...()、onResume() 方法,View 也不一定同步完成绘制,所以此时在这些方法里面获取 View 尺寸时就获取不到,解决方法有以下几种: 方法一、 Activity onWindowFocusChanged...() 方法获取 View 尺寸。...---- 最后想说是,本系列文章为博主对Android知识进行再次梳理,查缺补漏学习过程,一方面是对自己遗忘东西加以复习重新掌握,另一方面相信重新学习过程定会有巨大新收获,如果你也有跟我同样想法

    1.2K30

    UnityAndroid 触发home,回收覆盖UnityPlayerActivity上层activity问题

    问题 最近在开发一个Android SDK项目,提供给游戏方接入,发现游戏是unity引擎;正常游戏都是只有一个activity(继承UnityPlayerActivity),但是SDK业务交互上需要特定场景会弹出一个或者多个新...activityUnityPlayerActivity上,这个时候如果安卓手机点击home回到桌面,再点击图标返回,发现除了UnityPlayerActivity,其他activity都被回收了。...分析 将打包apk解析出AndroidManifest.xml发现,UnityPlayerActivityAndroidManifest.xmllaunchMode是singleTask,发现问题了...天真的想法一: 一开始天真的我发现,修改一下项目的AndroidManifest.xmlUnityPlayerActivitylaunchMode就ok了。...修改之后,重新运行项目,相同操作,问题还是存在;于是我又重新反编译解析出apkAndroidManifest.xml,惊讶发现:AndroidManifest.xmlUnityPlayerActivity

    4.3K52

    Android 安全】DEX 加密 ( Application 替换 | 分析 Activity 组件获取 Application | ActivityThread | LoadedApk )

    Instrumentation 涉及源码 七、 LoadedApk 涉及源码 一、 Activity getApplication() 方法分析 ---- Activity 调用 getApplication...() 方法 , 获取 Application 过程分析 ; 下面就是调用 Activity getApplication() 方法 , 其获取是 Application mApplication...成员 ; 而 mApplication 成员是 attach() 方法赋值 ; public class Activity extends ContextThemeWrapper.../app/Activity.java 二、 ActivityThread H 处理 消息及 handleLaunchActivity 方法操作 ---- ActivityThread ,...成员 ---- LoadedApk mApplication 成员已经替换成了自定义 Application , 不再是代理 Application , 因此从 Activity 获取

    60860

    Android Fragment与Activity通讯详解

    Android Fragment与Activity通讯详解 与activity通讯 尽管fragment实现是独立于activity,可以被用于多个activity,但是每个activity所包含是同一个...Fragment可以调用getActivity()方法很容易得到它所在activity对象,然后就可以查找activity控件们(findViewById())。...一个好办法是fragment定义一个回调接口,然后activity实现之。 例如,还是那个新闻程序例子,它有一个activityactivity中含有两个fragment。...然后activity实现接口OnArticleSelectedListener,方法onArticleSelected()通知fragmentB。...当fragment添加到activity时,会调用fragment方法onAttach(),这个方法适合检查activity是否实现了OnArticleSelectedListener接口,检查方法就是对传入

    71931

    android onresume函数,androidActivity重新创建后未调用onResume

    大家好,又见面了,我是你们朋友全栈君。 应用程序设置中进行某些更改时,我recreateonActivityResult调用MainActivity。重新创建后,不调用onResume。...我也收到错误:E/ActivityThread: Performing pause of activity that is not resumed 从this问题开始,我了解到不能从onResume调用此函数...没有recreate情况下如何使用Handler? 任何想法将不胜感激。谢谢! 最佳答案 onResume()之前调用OnActivityResult()。...您可以做OnActivityResult()设置一个标志,您可以onResume()检入,如果该标志为true,则可以重新创建活动。...您实际上可以做是完成活动并开始相同活动,而不是重新创建活动。您将获得相同效果。

    3.4K20

    Linux 检查文件大小 4 种方法

    Linux 操作系统,经常需要检查文件大小。无论是管理文件系统空间,还是确定文件传输大小限制,了解文件大小是非常重要。...本文将介绍 4 种常用方法,帮助你 Linux 检查文件大小。 方法一:使用 ls 命令 ls 命令是 Linux 中最常用文件和目录列表命令之一。它可以显示文件各种属性,包括文件大小。...使用 ls 命令检查文件大小方法很简单,只需执行以下命令: ls -l 上述命令会显示文件详细信息,其中包括文件大小。文件大小以字节为单位显示,并且输出第 5 列。...要使用 du 命令检查单个文件大小,可以执行以下命令: du -h 上述命令 -h 选项用于以人类可读格式显示文件大小。...总结 通过使用上述 4 种方法之一,你可以 Linux 中方便地检查文件大小。这些方法提供了不同方式来获取文件大小信息,适用于不同场景和需求。

    18.9K22

    Androidactivity给别的页面的控件添加控件点击事件

    最简单办法就是xml控件里写android:onClick="method",然后activity里面写对应方法。...activity里直接写findViewById会出现空指针异常,因为当前activity对应页面里面找不到要绑定控件。...,这样可以找到那个控件虽然不会报空指针异常,但是新建了一个View和当前activity使用View不是同一个View,所以就算设置了点击事件也无效。...发现这个问题是写AlertDialog时候自定义了AlertDialogView,然后里面有Button需要设置点击事件 AlertDialog.Builder adBuilder = new AlertDialog.Builder...然后给Button添加点击事件,看似没问题,但是前面 View dialogLayout = getLayoutInflater().inflate(R.layout.dialog, null); 已经获取了那个页面

    1.8K20

    获取屏幕上正在显示activity 博客分类: Android小技巧

    用过ActivityManager童鞋估计都知道,可以从ActivityManager里面可以获取到当前运行所有任务,所有进程和所有服务,这是任务管理器核心。...仔细看getRunningTasks文档,里面说获取是系统"running"所有task,"running"状态包括已经被系统冻结task。...而且返回这个列表是按照顺序排列,也就是说第一个肯定比第二个后运行。 getRunningTasks有个整型参数,表示返回列表最大个数。...那么,我们如果把1作为参数给进去,那么他返回task就是当前运行那个task,然后从task获取到最顶层activity,这个activity就是当前显示给用户那个activity了。...ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); ComponentName cn = am.getRunningTasks

    2.9K30

    android如何获取view布局高度与宽度详解

    前言 可能很多情况下,我们都会有activity获取view 尺寸大小(宽度和高度)需求。面对这种情况,很多同学立马反应:这么简单问题,还用你说?你是不是傻。。...当我们 onCreate() 方法获取某个 View 组件宽度和高度,直接调用 getWidth()、getHeight()、getMeasuredWidth()、getMeasuredHeight...OnPreDrawListener 监听事件 视图将要绘制时调用该监听事件,会被调用多次,因此获取到视图宽度和高度后要移除该监听事件。...view.getHeight(); // 获取高度 } }); 四、重写 View onSizeChanged 方法 视图大小发生改变时调用该方法,会被多次调用,因此获取到宽度和高度后需要考虑禁用掉代码...UI 事件队列会按顺序处理事件, setContentView() 被调用后,事件队列中会包含一个要求重新 layout message,所以任何 post 到队列 Runnable 对象都会在

    6K10

    Android activity 生命周期和数据储存

    Activity 作为 Android 四大组件之一,其与用户接触机会最多,所以灵活运用 activity 类能够让我们程序用户体验感更好。...这个图想必各位朋友已经看过了,我们来解释一下图片中方法作用: 上图中方法为继承 activity派生类覆盖实现方法,从 activity 对象创建到结束被摧毁都是在这些方法循环调用 @Override...如果想在屏幕显示方向改变或者屏幕尺寸改变时系统不杀死当前 activity 对,我们需要在当前工程配置文件配置一段代码。具体实现如下: ?...在当前工程配置文件 AndroidManifest.xml  activity标签中加入 :android:configChanges="orientation|keyboardHidden|screenSize...这样,发生屏幕大小、方向等事件是不会调用 onDestroy() 方法而摧毁 activity 活动对象,而是调用上述方法去处理。

    81920
    领券