相关疑难解决方法(0)

android.os.FileUriExposedException:file:///storage/emulated/0/test.txt通过Intent.getData()暴露在app之外

当我尝试打开文件时,应用程序崩溃了.它可以在Android Nougat下运行,但在Android Nougat上它会崩溃.当我尝试从SD卡打开文件而不是从系统分区打开文件时,它只会崩溃.一些许可问题?

示例代码:

File file = new File("/storage/emulated/0/test.txt");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "text/*");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent); // Crashes on this line
Run Code Online (Sandbox Code Playgroud)

日志:

android.os.FileUriExposedException:file:///storage/emulated/0/test.txt通过Intent.getData()暴露在app之外

编辑:

在定位Android Nougat时,file://不再允许使用URI.我们应该使用content://URI代替.但是,我的应用程序需要打开根目录中的文件.有任何想法吗?

android android-file android-7.0-nougat

682
推荐指数
15
解决办法
38万
查看次数

通过ClipData.Item.getUri暴露在app之外

嗨我想在android文件系统中添加新功能后修复问题,但是我收到此错误:

android.os.FileUriExposedException:file:///storage/emulated/0/MyApp/Camera_20180105_172234.jpg通过ClipData.Item.getUri()暴露在app之外

所以我希望有人可以帮我解决这个问题:)

谢谢

android.os.FileUriExposedException: file:///storage/emulated/0/MyApp/Camera_20180105_172234.jpg exposed beyond app through ClipData.Item.getUri()
Run Code Online (Sandbox Code Playgroud)

java android

77
推荐指数
2
解决办法
5万
查看次数

如何从Android中自定义CameraView捕获图像?

我需要捕获图像 所需部分中的屏幕.

相机捕获图像.

那时其他屏幕内容就是这样.

在此输入图像描述

这怎么可能

android image-capture surfaceview android-camera camera-view

36
推荐指数
1
解决办法
2万
查看次数

Android按钮打开相机

我希望这不是一个重复的问题,但我正在制作一个应用程序,我想要一个按钮打开相机应用程序(单独的默认Android相机).我怎么做到这一点?我知道有一个功能:

intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE)
Run Code Online (Sandbox Code Playgroud)

我需要使用它吗?如何从xml文件中调用该按钮?

此外,我是否需要担心存储该图片或视频,或者默认的相机应用程序会处理这个问题?

android android-camera

25
推荐指数
4
解决办法
11万
查看次数

如何从片段中获取onActivityResult的结果?

我已经Navigation drawer在每个项目中使用了我已经调用Fragments过的一个项目我已经Fragment在这个片段中调用了一个我需要从相机获取图片并将其设置为canvas background.在这里我捕获了相机图片但不知道如何在拍摄后获得这张照片并将其设置为画布背景.

片段代码

import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.ssoft.admin.code.SharedPreferenceStore;
import com.ssoft.admin.code.Tools;
import com.ssoft.admin.salesmateco.FragSiteInspectionAdditional;
import com.ssoft.admin.salesmateco.R;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-fragments

17
推荐指数
3
解决办法
4万
查看次数

用相机拍照并获取位图

我正在开发一个Android应用程序,它使用前置摄像头为用户模拟镜像.我需要应用程序每隔5秒拍一张照片作为位图(自动且无需用户交互),然后我将其与另一个位图结合使用.

对我来说困难的部分:如何拍照并将其作为位图?

我尝试了几种解决方案,但还没有一种解决方案.

标记为重复的另一个问题是手动而非自动执行此操作.

camera android bitmap

13
推荐指数
3
解决办法
3万
查看次数

照片捕获Intent仅在Samsung手机上导致NullPointerException

照片捕获仅在三星手机上Intent造成NullPointerException.

实施如下.

final Button capture = (Button)findViewById(R.id.capture_button);
capture.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

    }
});


protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (requestCode == CAMERA_PIC_REQUEST) {  

        Bitmap thumbnail = (Bitmap)data.getExtras().get("data");
        ImageView image = (ImageView)findViewById(R.id.photoResultView);
        image.setImageBitmap(thumbnail);
    }
}
Run Code Online (Sandbox Code Playgroud)

camera android nullpointerexception

11
推荐指数
1
解决办法
2万
查看次数

在外部存储上创建新文件时权限被拒绝

我需要将文件从资产复制到外部存储.这是我的代码:

    File f = new File(Environment.getExternalStorageDirectory() + File.separator
            + "MyApp" + File.separator + "tessdata" + File.separator + "eng.traineddata");
    if (!f.exists()) {
    AssetManager assetManager = getAssets();
    try {
        f.createNewFile();
        InputStream in = assetManager.open("eng.traineddata");
        OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory() + File.separator
            + "MyApp" + File.separator  + "tessdata" + File.separator + "eng.traineddata");
        byte[] buffer = new byte[1024];
        int read;
            while ((read = in.read(buffer)) != -1)
                    out.write(buffer, 0, read);
            in.close();
            in = null;
            out.flush();
            out.close();
            out = null;
        } catch (IOException e) {
            Log.e("tag", …
Run Code Online (Sandbox Code Playgroud)

file-io android

9
推荐指数
3
解决办法
3万
查看次数

如何让Android Camera Intent返回全尺寸图片

我正在使用此帖子中的jengelsma代码从相机中捕获图像和在活动中显示以从相机获取图像.

当我得到返回的图像时,它很小,当我尝试扩展它时,我立即失去了图像质量.

我认为这只是预览尺寸,但是我无法找到返回大图像,因为我需要它来操纵它.

供参考,代码是:

package edu.gvsu.cis.masl.camerademo;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MyCameraActivity extends Activity {
private static final int CAMERA_REQUEST = 1888; 
private ImageView imageView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    this.imageView = (ImageView)this.findViewById(R.id.imageView1);
    Button photoButton = (Button) this.findViewById(R.id.button1);
    photoButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
            startActivityForResult(cameraIntent, CAMERA_REQUEST); 
        }
    });
}

protected void onActivityResult(int requestCode, int resultCode, Intent …
Run Code Online (Sandbox Code Playgroud)

camera android android-intent android-camera

5
推荐指数
1
解决办法
2万
查看次数

找不到具有授权者的元数据

我已经在我的Android应用程序中集成了Snapchat的Creative Kit。处理之后,我从服务器收到了字节数组形式的图像,将其保存到磁盘,然后将文件发送到Snapchat的Creative Kit,如下所示。

 private fun downloadImage(
    fileName: String,
    imageByteArray: ByteArray?): Uri? {
    val state = Environment.getExternalStorageState()

    if (Environment.MEDIA_MOUNTED == state) {
        val downloadDir = File(
            Environment.getExternalStorageDirectory(), context?.getString(R.string.app_name)
        )

        if (!downloadDir.isDirectory) {
            downloadDir.mkdirs()
        }

        val file = File(downloadDir, fileName)
        var ostream: FileOutputStream? = null
        try {
            ostream = FileOutputStream(file)
            ostream.write(imageByteArray)
            ostream.flush()
            ostream.close()
            }
        } catch (e: IOException) {
            e.printStackTrace()
        }

    val snapCreativeKitApi = SnapCreative.getApi(context!!)
    val snapMediaFactory = SnapCreative.getMediaFactory(context!!)
    lateinit var snapPhotoFile: SnapPhotoFile
    try {
        snapPhotoFile = snapMediaFactory.getSnapPhotoFromFile(file)
    } catch (e: SnapMediaSizeException) …
Run Code Online (Sandbox Code Playgroud)

android android-fileprovider snapchat

5
推荐指数
6
解决办法
4140
查看次数

从相机拍照并从图库中选择并在图像视图中显示

我想从画廊拍摄照片并将其设置在我的ImageView中以及我想从相机拍摄照片并将其设置为我的相同图像视图.

我非常坚持这一点.

谁能帮我?

谢谢.

android imageview

3
推荐指数
1
解决办法
2万
查看次数