2024年最全Android --- 调用MediaStore(1),面试万能总结语

最后

我一直以来都有整理练习大厂面试题的习惯,有随时跳出舒服圈的准备,也许求职者已经很满意现在的工作,薪酬,觉得习惯而且安逸。

不过如果公司突然倒闭,或者部门被裁减,还能找到这样或者更好的工作吗?

我建议各位,多刷刷面试题,知道最新的技术,每三个月可以去面试一两家公司,因为你已经有不错的工作了,所以可以带着轻松的心态去面试,同时也可以增加面试的经验。

我可以将最近整理的一线互联网公司面试真题+解析分享给大家,大概花了三个月的时间整理2246页,帮助大家学习进步。

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是部分内容截图:

部分目录截图

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

方法可以达到我们的目的,但是会发现在相册中生成了两张内容一样的图片,一张是以我们设置的命名方式命名的(具体步骤可以查看insertImage用法),另一张则是系统帮我们生成的根据当前时间命名的缩略图。

查看insertImage的源码,我们发现保存图片其实是通过以下代码做到的:

ContentValues values = new ContentValues();

values.put(MediaStore.Images.Media.DATA, file_export.getAbsolutePath());

values.put(MediaStore.Images.Media.MIME_TYPE, “image/jpeg”);

Uri uri = context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

后面的代码则是生成缩略图用的,那么我们在使用的时候剥离出这部分我们需要的代码即可,也就是在原来使用

MediaStore.Images.Media.insertImage(getContext().getContentResolver(),path_export, file_export.getName(), file_export.getName());

的地方,使用以下代码替换它就行了:

如何成为Android高级架构师!

架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。

架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。

但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。


成为Android架构师必备知识技能

对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)

部分内容展示

《设计思想解读开源框架》

  • 目录
  • 热修复设计
  • 插件化框架设计

    《360°全方面性能优化》
  • 设计思想与代码质量优化
  • 程序性能优化

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 MAUI 中使用 C# 获取下载目录文件,你可以使用 `MediaStore` 类中的 `GetExternalMediaDirs` 方法: ``` using Android.Provider; using Android.Content; // ... // 获取所有的外部存储目录 string[] externalDirs = MediaStore.GetExternalMediaDirs(); // 只获取下载目录 string downloadDir = externalDirs[0]; // 获取下载目录中的所有文件 string[] files = Directory.GetFiles(downloadDir); ``` 你需要注意的是,在访问外部存储的文件之前,你需要在应用的 `AndroidManifest.xml` 中声明对外部存储的访问权限: ``` <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> ``` 你还可以使用 `MediaStore` 类中的其他方法来获取多媒体文件的信息,比如获取图片、音频、视频等。 ### 回答2: 在使用C#编写获取下载目录文件的代码时,可以结合MAUI和MediaStore进行操作。下面是一个简单的示例代码: ```csharp using System; using Xamarin.Essentials; using System.Collections.Generic; using System.Threading.Tasks; using Android.Provider; public async Task<List<string>> GetDownloadDirectoryFiles() { var files = new List<string>(); // 存储文件名列表 try { var downloads = await MediaStore.Download.GetDownloadsAsync(); // 获取下载目录 foreach (var download in downloads) { var fileUri = download.Uri; // 获取文件Uri var filePath = await GetFilePathFromUri(fileUri); // 将Uri转换为文件路径 files.Add(filePath); // 将文件路径添加到列表中 } } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } return files; } public async Task<string> GetFilePathFromUri(Android.Net.Uri uri) { string filePath = ""; try { var fileProvider = await Xamarin.Essentials.FilePicker.GetFileProvider(uri); // 获取文件提供程序 if (fileProvider != null) { filePath = fileProvider.Path; // 获取文件路径 } } catch (Exception ex) { Console.WriteLine($"Error: {ex.Message}"); } return filePath; } ``` 这段代码中,我们首先使用`MediaStore.Download.GetDownloadsAsync`方法获取下载目录中的文件列表。然后,遍历每个文件的Uri,调用`GetFilePathFromUri`方法将Uri转换为文件路径。最后,将文件路径添加到`files`列表中,并返回该列表。 请注意,此代码仅为示例,用于说明如何在MAUI中使用MediaStore获取下载目录文件。您可能需要根据实际需求进行修改和优化。 ### 回答3: 在C#中使用MAUI的MediaStore来获取下载目录文件的代码如下: ```csharp using System; using System.IO; using Xamarin.Essentials; namespace MyApp { public class FileHelper { public static string GetDownloadDirectory() { return Path.Combine(FileSystem.CacheDirectory, "Download"); } public static void GetDownloadedFiles() { var downloadPath = GetDownloadDirectory(); if (!Directory.Exists(downloadPath)) { Console.WriteLine("Download directory does not exist."); return; } var files = Directory.GetFiles(downloadPath); foreach (var file in files) { Console.WriteLine(file); } } } } ``` 上述代码中,我们首先定义了一个`FileHelper`类,其中包含两个方法:`GetDownloadDirectory()`和`GetDownloadedFiles()`。 `GetDownloadDirectory()`方法用于获取下载目录的路径,这里使用了`Xamarin.Essentials`中的`FileSystem.CacheDirectory`来获取设备的缓存目录路径,然后将其与"Download"文件夹名称拼接起来,得到最终的下载目录路径。 `GetDownloadedFiles()`方法用于获取下载目录中的文件列表,首先判断下载目录是否存在,如果不存在则输出提示信息并返回。然后使用`Directory.GetFiles()`方法获取下载目录中的所有文件路径,并遍历输出每个文件的路径(在实际应用中可以根据需求进行相应的处理)。 你可以在需要获取下载目录文件的地方调用`FileHelper.GetDownloadedFiles()`方法来获取下载目录中的文件列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值