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

在Android 1.5 +上访问视频和照片

Android 1.5+上的视频和照片访问

1.5+上的视频和照片访问

在Android 1.5+上,视频和照片的访问主要依赖于两种方式:使用ContentProvider或直接操作Uri

使用ContentProvider

  • ContentProvider:是一种访问数据的方式,它提供了一套统一的接口,规范了在不同应用之间共享数据的行为。
代码语言:markdown
复制
### 使用ContentProvider

1. 注册ContentProvider
```java

public static final String CONTENT_PROVIDER_PATH = "com.example.contentprovider";

ContentProviderClient contentProviderClient = getContentResolver().acquireContentProviderClient(CONTENT_PROVIDER_PATH);

ContentProvider provider = contentProviderClient.getProvider();

代码语言:txt
复制
2. 使用ContentProvider
```java

Uri uri = Uri.parse("content://com.example.contentprovider/videos");

Cursor cursor = getContentResolver().query(uri, new String[]{MediaStore.Video.VideoColumns.DATA}, null, null, null);

cursor.moveToFirst();

String filePath = cursor.getString(0);

cursor.close();

代码语言:txt
复制
#### 直接操作Uri

- **Uri**:是访问数据的另一种方式,它是对数据路径的抽象,在Android中主要用于访问ContentProvider中的数据。

```markdown

直接操作Uri

  1. 获取UriUri uri = getContentResolver().acquireContentUri(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  2. 使用UriInputStream inputStream = getContentResolver().openInputStream(uri); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); inputStream.close();

小结

  • 使用ContentProvider方式需要注册ContentProvider,在数据访问方面有较大的局限性。
  • 直接操作Uri方式则更加灵活,可以访问系统外部存储,但需要处理IO异常。

扩展阅读

参考资料

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

相关·内容

Tubi 为什么?

在一段旅程行将结束的时候,retrospective 是最好的临别礼物。Tubi 是一家独特的 startup,站在外人的角度,你很难想象这样一家不到三十个工程师的公司,竟然同时维护着五个主要的产品线:二十多种客户端软件(并且还在不断增加);五十多种自研或者第三方的后端服务(即便第三方,也还需要部署升级记录 metric 等维护工作);一个完备的广告系统;一套复杂的 data pipeline 和 personalization engine;还有,刚刚研发成功的,堪比 netflix 水平的下一代转码系统。做同样的事情,Hulu 有数百(甚至成千)工程师,而 netflix 有数千工程师。所以我在为之自豪的同时,常常在想,究竟是我们做对了哪些地方,才导致这样的结果?毛同学在《实践论》中说:认识从实践始,经过实践得到了理论的认识,还需再回到实践去。本文,我希望能探讨并总结出理论的认识,从而指导自己下一步的实践。

00
领券