当前位置: 首页 > 知识库问答 >
问题:

安卓--如何阻止相机在手机上存钱

夹谷烨赫
2023-03-14

在我的应用程序上,我正在使用手机摄像头,并将图像保存在sd卡上。问题是照片也被保存在手机的内存中。我有什么办法阻止不了吗?

这是启动相机意图的代码:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
        startActivityForResult(cameraIntent, CAMERA_REQUEST);

这是将图像保存到sd卡的代码:

String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/wardrobe_app");    
    myDir.mkdirs();
    Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    String fname = "Image-"+ n +".jpg";
    File file = new File (myDir, fname);
    if (file.exists ()) file.delete (); 
    try {
           FileOutputStream out = new FileOutputStream(file);
           finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
           out.flush();
           out.close();

    } catch (Exception e) {
           e.printStackTrace();
    }
    file_path = myDir.toString();
    img_path = file_path + "/" + fname;
    Toast t = Toast.makeText(addClothing.this,
            img_path, Toast.LENGTH_LONG);
    t.show();

这是将ImageView设置为拍摄的图片的代码:

if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
        photo = (Bitmap) data.getExtras().get("data");
        iv1.setImageBitmap(photo);
        SaveImage(photo);
    }

谢谢你的帮助!

共有1个答案

长孙逸仙
2023-03-14

不幸的是,我相信这是不可能的没有根,至少有意图。您的代码不是问题所在;这是由于相机应用程序的工作方式--当用户拍摄一张照片时,相机应用程序本身会将那张照片保存到设备内存中,并返回一张位图。所以这完全不是你能控制的,除非你有root,可以用反射修改相机app来阻止保存。

另一个选择是直接在你的应用程序中使用相机API。

 类似资料: