社区首页 >问答首页 >摄像头意图在android版本11中不能正常工作

摄像头意图在android版本11中不能正常工作
EN

Stack Overflow用户
提问于 2021-03-30 10:03:37
回答 2查看 393关注 0票数 1
代码语言:javascript
代码运行次数:0
复制
I have try some following solution to captured image on android version 11. But this solution are not working. when I use bitmap that time I get blur image this Is not visible properly.I have added the below code in the manifest.

  android:requestLegacyExternalStorage="true" ` Add this top stored image in external storage`
 <queries>
        <intent>`
            <action android:name="android.media.action.IMAGE_CAPTURE" />
        </intent>
    </queries>

// add code in class call image Intent 
 public static Intent getPickImageIntent(Context context) {
        mContext = context;
        Intent chooserIntent = null;

        List<Intent> intentList = new ArrayList<>();

        Intent pickIntent = new Intent(Intent.ACTION_PICK,
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
      //  takePhotoIntent.putExtra("return-data", true);
      //  takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(getTempFile(context)));
        intentList = addIntentsToList(context, intentList, pickIntent);
        intentList = addIntentsToList(context, intentList, takePhotoIntent);

        if (intentList.size() > 0) {
            chooserIntent = Intent.createChooser(intentList.remove(intentList.size() - 1),
                    context.getString(R.string.pick_image_intent_text));
            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentList.toArray(new Parcelable[]{}));
        }

        return chooserIntent;
    }
 when I add temp file path then this is not working in above API level 30 

 // pass image uri to activity set image in imageview     
public static Uri getImageFromResultUri(Context context, int resultCode,
                                            Intent imageReturnedIntent) {
        File imageFile = getTempFile(context);
        Uri selectedImage = null;
        int sdkVersion = Build.VERSION.SDK_INT;
        if (resultCode == Activity.RESULT_OK) {
                boolean isCamera = (imageReturnedIntent == null ||
                    imageReturnedIntent.getData() == null ||
                    imageReturnedIntent.getData().toString().contains(imageFile.toString()));
                if (isCamera) {     /** CAMERA **/
                   // selectedImage = Uri.fromFile(imageFile);
                    Bitmap photo = (Bitmap) imageReturnedIntent.getExtras().get("data");
                    selectedImage = getImageUri(context,photo);
                } else {            /** ALBUM **/
                    selectedImage = imageReturnedIntent.getData();
                }
        }

         return selectedImage;

    }
 
when I convert Bitmap image to URI
 public static Uri getImageUri(Context mContext, Bitmap inImage){
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG,100,bytes);
        String path = MediaStore.Images.Media.insertImage(mContext.getContentResolver(),inImage,"Title",null);
        return Uri.parse(path);
    }

当我将图像位图转换为URI时,我得到了一个缩略图,所以这是一个模糊的图像,那么我如何在android版本11中不使用位图的情况下获得图像。我不知道该怎么把这张图片保存在画廊里。图像在每个设备中都变得模糊。当我使用takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(getTempFile(Context))时,这段代码在版本11以下就可以正常工作了。但是我如何在android版本11中使用相同的代码呢?

EN

回答 2

Stack Overflow用户

发布于 2021-03-30 10:20:40

上下文Uri.fromFile(getTempFile(Context));

您应该改用FileProvider和FileProvider.getUriForFile()来为摄影机意图提供有效的uri。

也适用于Android 11以下的版本;

票数 1
EN

Stack Overflow用户

发布于 2021-03-30 10:07:01

你的目标API版本是什么?requestLegacyExternalStorage只有在最多使用Android 10的情况下才能工作,如果是targetting Android 11 you have to use Scoped Storage,则实现对此功能的支持。如果没有这个实现,你将无法在安卓11+设备上访问你的私人应用文件夹之外的文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66868790

复制
相关文章
.NET 5 中使用 Consul+Ocelot+Polly缓存、限流、熔断、降级
链接:cnblogs.com/wei325/archive/2021/09/27/15308498.html
郑子铭
2021/11/10
1.8K0
.NET 5 中使用 Consul+Ocelot+Polly缓存、限流、熔断、降级
聊聊Asp.net Core中如何做服务的熔断与降级
而对于微服务来说,熔断就是我们常说的“保险丝”,意为当服务出现某些状况时,切断服务,从而防止应用程序不断地尝试执行可能会失败的操作造成系统的“雪崩”;或者大量的超时等待导致系统卡死等情况,很多地方也将其成为“过载保护”。
乔达摩@嘿
2023/07/21
3720
聊聊Asp.net Core中如何做服务的熔断与降级
API网关Ocelot 使用Polly 处理部分失败问题
在实现API Gateway过程中,另外一个需要考虑的问题就是部分失败。这个问题发生在分布式系统中当一个服务调用另外一个服务超时或者不可用的情况。API Gateway不应该被阻断并处于无限期等待下游服务的状态。但是,如何处理这种失败依赖于特定的场景和具体服务。如果是产品信息服务无响应,那么API Gateway就应该给客户端返回一个错误。 Ocelot 是一个使用.NET Core平台上的一个API Gateway,最近我在参与这个项目的开发,开发完成第一个就是使用Polly 处理部分失败问题。各位同学可
张善友
2018/01/22
1.3K0
.NET 基金会项目介绍-Polly
如今的云应用程序、移动设备、流数据处理和 IoT 技术等等都非常依赖于可靠的系统连通性。不过现实是:基础系统可能出现操作失败,网络波动时有发生:或中断、或延时、或瞬时波动、或峰值负载 —— 这些都对100%的系统连通性造成挑战。
newbe36524
2020/03/16
6030
ASP.NET Core 使用HttpClientFactory Polly实现熔断降级
在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择。处理HttpClient,底层socket套接字不会立即释放。该HttpClient类是未多个请求重复使用而创建的。需要不同的基地址,不同的HTTP 标头和其他对请求个性化操作的场景时,需要动手管理多个HttpClient实例,为了简化HttpClient实例管理,.NET Core 2.1提供了一个新的HTTPClientFactory - 它可以创建,缓存和处理HttpClient实例。
HueiFeng
2020/03/13
1.1K0
ASP.NET Core 使用HttpClientFactory Polly实现熔断降级
图片上传图床与备份回退策略
主要完成的技术要点是对接图床,并且在本地备份(相对于服务器的本地),然后记录计入数据库。
时光潜流
2022/12/26
4080
图片上传图床与备份回退策略
.NET Core微服务之基于Polly+AspectCore实现熔断与降级机制
  在广义的解释中,熔断主要是指为控制股票、期货或其他金融衍生产品的交易风险,为其单日价格波动幅度规定区间限制,一旦成交价触及区间上下限,交易则自动中断一段时间(“熔即断”),或就此“躺平”而不得超过上限或下限(“熔而不断”)。
Edison Zhou
2018/08/07
2K0
.NET Core微服务之基于Polly+AspectCore实现熔断与降级机制
asp.net core 使用HttpClientFactory Polly实现熔断降级
在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择。处理HttpClient,底层socket套接字不会立即释放。该HttpClient类是未多个请求重复使用而创建的。需要不同的基地址,不同的HTTP 标头和其他对请求个性化操作的场景时,需要动手管理多个HttpClient实例,为了简化HttpClient实例管理,.NET Core 2.1提供了一个新的HTTPClientFactory - 它可以创建,缓存和处理HttpClient实例。
HueiFeng
2020/02/12
8390
asp.net core 使用HttpClientFactory Polly实现熔断降级
asp.net core 使用HttpClientFactory Polly实现熔断降级
在NET Core2.1后也是增加更新了很多东西,当然HttpClientFactory更新中的一部分.虽然说HttpClient这个实现了disposable,但使用它的时候用using包装块的方式通常不是最好的选择。
梁规晓
2019/09/24
9040
asp.net core 使用HttpClientFactory Polly实现熔断降级
项目中的异常处理策略与最佳实践
在软件开发的世界里,异常就如同人生中的意外,时常会出现,却又令人防不胜防。无论是在什么规模的项目中,异常处理都是不可或缺的一环。今天,我们将深入探讨,在项目开发中,为什么你一定会使用异常处理,以及如何巧妙地运用它,为你的代码赋予更高的稳定性和可维护性。
coderidea
2023/09/07
6080
项目中的异常处理策略与最佳实践
ASP VNext 开源服务容错处理库Polly使用文档
在进入SOA之后,我们的代码从本地方法调用变成了跨机器的通信。任何一个新技术的引入都会为我们解决特定的问题,都会带来一些新的问题。比如网络故障、依赖服务崩溃、超时、服务器内存与CPU等其它问题。正是因为这些问题无法避免,所以我们在进行系统设计、特别是进行分布式系统设计的时候以“Design For Failure”(为失败而设计)为指导原则。把一些边缘场景以及服务之间的调用发生的异常和超时当成一定会发生的情况来预先进行处理。 Design For Failure 1. 一个依赖服务的故障不会严重破坏用户
用户1153966
2018/04/11
1.4K0
.Net Core with 微服务 - Polly 服务降级熔断
在我们实施微服务之后,服务间的调用变的异常频繁。多个服务之间可能是互相依赖的关系。某个服务出现故障或者是服务间的网络出现故障都会造成服务调用的失败,进而影响到某个业务服务处理失败。某一个服务调用失败轻则造成当前相关业务无法处理;重则可能耗尽资源而拉垮整个应用。为了尽可能的保证我们生产环境的可用性,至少是部分可用性我们就需要一些策略来保护我们的服务。
MJ.Zhou
2021/07/28
6910
负载均衡策略导致后端程序访问异常
  最近新部署了openshift集群,由于使用了自签证书,浏览器访问集群的https服务会报告警(如下图),在使用浏览器(特别是IE)访问openshift master暴露的服务时,选择继续访问时,出现了尝试很多次才能登陆成功的情况。
charlieroro
2020/03/24
1K0
负载均衡策略导致后端程序访问异常
.NET 异常处理的动作策略(Action Policy)
SQL Server 2008基于策略的管理,基于策略的管理(Policy Based Management),使DBA们可以制定管理策略,并将这些策略应用到服务器、数据库以及数据环境中的其他对象上去。基于动作策略(Action Policy)的异常处理使开发人员可以为异常处理制定策略,简单的说,动作策略只是一些可重复使用的一个装饰器,可以很容易应用与方法调用。 异常处理只是一个合乎逻辑的动作策略的一部分,动作策略决定如何对异常做出处理,微软的Enterprise Library的异常处理模块试图为开发人员
张善友
2018/01/19
7530
云原生系统之弹性模式
1.云原生系统的弹性模式resiliency pattern 1.1 服务故障的雪崩效应 1.2 回应之前云原生--弹性请求的疑问?
有态度的马甲
2021/08/05
1.6K0
使用熔断器设计模式保护软件
作为软件开发人员,我们的生活是快节奏的,我们采用的是敏捷软件开发方法,迭代式的开发我们软件功能,开发完成提交测试,通过了QA的测试后被部署到生产环境,然后可怕的事情在生产环境里发生了,生产环境的压力超过了我们的设计值,也就是说过载了,这种情况经常发生在调用远程服务,因为没有做过载保护,导致请求的资源阻塞在服务器上等待从而耗尽系统或者服务器资源,很多时候刚开始的时候只是系统出现了局部的,小规模的故障,然而由于种种原因,故障的范围越来越大,最终导致了全局性的后果,墨菲定律在软件里面特别灵验。俗话说就是"任何会出
张善友
2018/01/19
1K0
使用熔断器设计模式保护软件
如何解决EnterLib异常处理框架最大的局限——基于异常"类型"的异常处理策略
个人觉得EnterLib的EHAB(Exception Handling Application Block)是一个不错的异常处理框架,借助于EHAB,我们可以配置的方式来自定义异常处理策略,从而带来最大的灵活性和可维护性。但是,在我看来,EHAB有一个最大的局限,把就是异常处理策略的粒度过大——只能提供基于异常类型级别。本篇文章通过一个自定义ExceptionHandler很好地解决了这个问题。 一、EnterLib基于异常类型的异常处理策略 EnterLib的异常处理策略基本上可以通过这样的的公式来表示
蒋金楠
2018/01/16
1.3K0
.NET Core 3.0深入源码理解HttpClientFactory之实战
前面两篇文章透过源码角度,理解了HttpClientFactory的内部实现,当我们在项目中使用时,总会涉及以下几个问题:
Edison.Ma
2019/08/06
1.2K0
「第二部:容器和微服务架构](16)微服务的回弹性和高可用性
处理意外故障是最难解决的问题之一,特别是在分布式系统中。开发人员编写的大部分代码都涉及异常处理,而这也是测试中花费最多时间的地方。这个问题比编写处理失败的代码更复杂。当运行微服务的机器出现故障时会发生什么情况?您不仅需要检测此微服务故障(这本身就是一个难题),而且还需要一些东西来重新启动您的微服务。
架构师研究会
2020/07/18
1.1K0
ASP.NET Core 6框架揭秘实例演示[17]:利用IHttpClientFactory工厂来创建HttpClient
在一个采用依赖注入框架的应用中,我们一般不太推荐利用手工创建的HttpClient对象来进行HTTP调用,使用的HttpClient对象最好利用注入的IHttpClientFactory工厂来创建。前者引起的问题,以及后者带来的好处,将通过如下这几个演示程序展现出来。IHttpClientFactory类型由“Microsoft.Extensions.Http”这个NuGet包提供,“Microsoft.NET.Sdk.Web”SDK具有该包的默认引用。如果采用“Microsoft.NET.Sdk”这个SDK,需要添加该包的引用。(本篇提供的实例已经汇总到《ASP.NET Core 6框架揭秘-实例演示版》)
蒋金楠
2022/05/09
8460
ASP.NET Core 6框架揭秘实例演示[17]:利用IHttpClientFactory工厂来创建HttpClient

相似问题

如何处理两个按钮单击事件上的相同代码

17

处理多个按钮和多个单击事件

21

如何在WPF中处理多个类似按钮上的单击事件?

30

如何设置多个按钮上的单击事件

310

单击“保存”按钮上的事件处理

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档