You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AndroidPhotoPicker返回NULLURI

在使用 PhotoPicker 时,可能会遇到返回 NULL URI 的情况。这通常是由于权限问题或 startActivityForResult() 方法使用不正确导致的。以下是解决该问题的几种方法:

  1. 检查权限:确保已经在 AndroidManifest.xml 文件中添加了所需的权限。并在申请权限时要确保用户已经授权。

示例代码:

// AndroidManifest.xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

// 申请权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_PERMISSION_READ_STORAGE); }

  1. 使用正确的请求代码:在启动 PhotoPicker 时,应该使用 startActivityForResult() 方法,并正确处理返回结果。

示例代码:

// 启动 PhotoPicker PhotoPicker.builder() .setPhotoCount(1) .setShowCamera(true) .setShowGif(true) .setPreviewEnabled(false) .start(this);

// 处理返回结果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PhotoPicker.REQUEST_CODE && resultCode == RESULT_OK) { ArrayList<String> photos = data.getStringArrayListExtra(PhotoPicker.KEY_SELECTED_PHOTOS); // 处理照片 } }

  1. 处理 URI 为空的情况:如果使用的是 Android 7.0 及以上的设备,并且从相机中拍摄照片时,可能会出现返回 URI 为空的情况。此时应该使用 FileProvider 来解决该问题。

示例代码:

// AndroidManifest.xml <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider>

// xml/file_paths.xml <paths> <external-path name="external_files" path="." /> </paths>

// 创建临时文件 File tempFile = createImageFile();

// 获取 URI Uri tempUri = FileProvider.getUriForFile(this, getPackageName() + ".provider", tempFile); intent.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);

注意:需要在创建 Intent 时,设置输出的 URI。如果需要将所拍摄的照片保存到相册中,还需要通过 ContentResolver 来更新媒体库。

通过以上方法,可以解决 Android PhotoPicker 返回 NULL URI 的问题。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

从重构到扩展——跨端通讯SDK

complete(returnStr); }; const src = 'jockey://' + type + '/' + envelope.id + '?' + encodeURIComponent(JSON.stringify(envelope)); let iframe: null | HTMLIFr... 安卓环境执行的示例代码:``` public class DefaultJockeyImpl extends JockeyImpl { @Override public void triggerCallbackOnWebView(WebView webView, int messag...

正式开源!无恒实验室推出appshark自动化漏洞及隐私合规检测工具

Appshark可以作为公司内部的Android App的自动化检测工具,辅助企业发现App的安全漏洞及隐私合规风险,也可以作为白帽子日常App漏洞挖掘的助手,提高漏洞挖掘的效率及产出。### 3、appshark在字节跳动的表现如何a... @NonNull String mode) throws FileNotFoundException { File root = getContext().getExternalFilesDir("sandbox"); String path = uri.getQueryParameter("path"); return ParcelFileD...

【拥有新时代的通信协议,引领云原生迈向更高的舞台】解密Dubbo3从微服务升华到云原生 | 社区征文

"uriSpec": null}```##### 异构化体系或者语言通信###### Dubbo与其他服务生态的通信目前Spring cloud和K8s 都是基于实例,也就是应用级别进行的注册发现,Dubbo要成为连接异构系统最好用的RPC框架就需要支持实例粒度;> **应用级别治理机制,打通了与其他微服务体系之间在地址发现层面的鸿沟,也成为适配 Kubernetes Native Service 等基础设施的技术理论基础。**##### 去其糟粕,开创跨生态协议如果想要完成对云原...

移动开发中项目遇到的问题和总结|社区征文

{ backgroundColor: null, useCORS: true }).then(canvas => { //延迟执行确保万无一失,玄学 setTimeout(() => { //转成图片,生成图片地址 this.createFile(canvas.toDataURL("image/png")... 也就是会返回Access-Control-Allow-Origin等响应头。2. 不支持box-show、box-radius3. 生成图片背景色异常,需要在异常的背景色处的dom块元素,设置背景色,一般设置为白色## dart-sassdart-sass使用前需要注意几...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

AndroidPhotoPicker返回NULLURI -优选内容

Android SDK集成开发指南
一. 概述 「A/B 测试」 在 Android 客户端的SDK 使用的为增长营销套件SDK ,主要的和A/B Test 相关接口有两个: 实验组分流接口 指标上报(事件埋点上报)接口 二. 集成SDK 1.集成SDK如果已经集成了RangerAppLog-lit... config.setUriConfig(UriConfig.createByDomain("{{REPORT_URL}}", null)); config.setAbEnable(true); // 开启 AB 测试 config.setAutoTrackEnabled(true); // 全埋点开关,true开启,...
功能接入
本文档将为您介绍 Android 加载 SDK 的能力接入说明。 Android 9.0 libwebp 解码在 Android 9.0 版本,系统原生的 Webp 解码方式存在部分问题,推荐您在 Android 9.0 版本使用 libwebp 解码方式。 java ImagePipelin... 代码示例如下所示:java ImageRequestBuilder builder = ImageRequestBuilder .newBuilderWithSource(uri) .setProgressiveRenderingAnimatedEnabled(true);DraweeController controller = Fresco.ne...
Android SDK 集成
blackList = [] // 埋点黑名单配置 // 仅支持以下配置: // 'MAC_ADDRESS': mac地址 // 'IMEI_MEID': imei和meid // 'OAID': oaid // 'ANDROIDID': android id // 'OPERATOR': carrier、... 离线包依赖混淆配置:-keep class com.bytedance.applog.picker.DomSender { public *; }-keep class com.bytedance.applog.tracker.WebViewUtil { public *; }-keep class com.bytedance.applog.metasec.AppLogSec...
Android SDK 集成
blackList = [] // 埋点黑名单配置 // 仅支持以下配置: // 'MAC_ADDRESS': mac地址 // 'IMEI_MEID': imei和meid // 'OAID': oaid // 'ANDROIDID': android id // 'OPERATOR': carrier、... 离线包依赖混淆配置:-keep class com.bytedance.applog.picker.DomSender { public *; }-keep class com.bytedance.applog.tracker.WebViewUtil { public *; }-keep class com.bytedance.applog.metasec.AppLogSec...

AndroidPhotoPicker返回NULLURI -相关内容

Android 上传 SDK 接入文档(旧版)

一、阅读对象 本文档为技术文档,建议阅读者具有基本的Android开发能力。 二、支持系统 系统支持Android2.3 及以上开发版本。 三、开发环境 推荐开发者使用 Android Studio 作为自己的开发工具,本开发文档也是基于 Android Studio开发环境下进行编写的。 四、集成方式 项目 build.gradle 下加上 allprojects { repositories { google() jcenter() maven { url "https://artifact.bytedance.c...

Applog 初始化后控制数据发送

Android初始化的时候调用 setAutoStart(false); 然后初始化,就不会发送数据,等授权之后再调用 AppLog.start(); 未初始化之前的数据在内存缓存,有数量限制,300条,初始化后持久存db,无限制。 DemoPHP/* 初始化开始 ... config.setUriConfig(UriConfig.createByDomain("{{REPORT_URL}}", null)); // 开启圈选埋点 config.setPicker(new Picker(this, config)); // 开启AB测试 config.setAbEnable(true); //开启圈选预置事件开关,true...

Android SDK集成

一、简介 App 弹窗是 GMP ReachSDK 提供的弹窗触达功能。 二、SDK集成 1. 配置应用鉴权信息需提供 Android 应用包名和应用签名然后在 GMP 后台配置(管理中心-消息管理-客户端SDK-鉴权配置),需保证与 app 的实际信息... return new ReachConfig.Builder() // 设置 gmp 项目id .setAppId(Config.INSTANCE.getGmpAppId()) .setAppConfig(new IAppConfig() { @NonNull @Override public...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Android

.setLicenseUri("assets:///license/live.lic") .setLicenseCallback(mLicenseCallback)//License 加载的状态回调 .build());//开启 License 模块 logcat 输出。建议排查问题时开启,发包时关闭。//LicenseManager.turnOnLogcat(true);//License 回调对象LicenseManager.Callback mLicenseCallback =new LicenseManager.Callback() { @Override public void onLicenseLoadSuccess(@NonNull String licenseUr...

Android 10 分区存储

背景信息以 Android 10 为目标平台,开启分区存储,不能直接通过文件路径(File)访问非应用专属存储空间的文件。因此,需要您通过 MediaStore 和 SAF 读取数据,并传给上传 SDK。详细说明请参考分区存储。 实现 BDMedia... 其中需要注意如下信息: mContext.getContentResolver().openFileDescriptor(mUri, "r") 返回的对象在上传周期内,需要保证不能被释放。 仅保证 mContext.getContentResolver().openFileDescriptor(mUri, "r").getFi...

Android 接入

本文介绍集成 veVOS 解决方案相关 SDK 的方法,根据文档提供的操作步骤进行配置,您可以将 veVOS 解决方案下的 SDK 集成到 Android App 工程中。 开发环境要求Android 5.0 及以上系统。 armv7a、arm64 架构。 前提条件请获取 AppLog 的在线集成地址。 获取 ttsdk-ttlivepush_rtc 、ttsdk-ttlivepull_rtc 、effectsdk 和 RangersAppLog-Lite-cn 的版本号。 操作步骤Step 1:获取 LicenseveVOS 互动直播场景下,您需要获取视频直播 Lic...

Android SDK集成

配置应用鉴权信息需提供 Android 应用包名和应用签名然后在 GMP 后台配置(管理中心-消息管理-客户端SDK-鉴权配置),需保证与 app 的实际信息一致,可联系您的客户端开发人员获取。该项配置用于接口的安全鉴权校验,不... return new ReachConfig.Builder() // 设置 gmp 项目id .setAppId(Config.INSTANCE.getGmpAppId()) .setAppConfig(new IAppConfig() { @NonNull @Override public...

使用Android SDK实现简单推流功能

前言 集成Android SDK,实现简单的推流功能。 关于实验 预计部署时间:20分钟级别:初级相关产品:视频直播受众: 通用 实验说明 已经开通视频直播功能:点击打开控制台 添加推拉流域名,并进行关联,操作请参考官网文档:点... String assetsLicenseUri = "assets:///xxxxxx.lic"; //添加授权文件。将 license URI 添加到 LicenseManager。 LicenseManager.getInstance().addLicense(assetsLicenseUri, null); ...

Android 快速开始(历史版本)

参数集成: java Env.setupSDKEnv(new Env.SdkContextEnv() { @Override public Context getApplicationContext() { return context.getApplicationContext(); } @Override public Thread... (assetsLicenseUri, null);说明: License 获取请参考 请参考 管理应用 文档,在控制台 “创建应用” 后,点击 “购买 License” 获取。 SDK License 模块对外暴露的接口类为 LicenseManager 从火山引擎点播控制台获...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询