1、exposed beyond app through ClipData.Item.getUri() 错误
2、错误:ava.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.huawei.camera/.ThirdCamera clip={text/uri-list U:file:///storage/emulated/0/fileImg.jpg} (has extras) } from ProcessRecord{a21c469 13041:com.ruoyi.wanxiangcheng/u0a220} (pid=13041, uid=10220) with revoked permission android.permission.CAMERA。
package edu.ydk.shexiangtou; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.StrictMode; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageView; import java.io.File; import java.io.IOException; public class MainActivity extends AppCompatActivity { private ImageView img_show; private Button btn_start; private File currentImageFile = null; @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bindViews(); StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); builder.detectFileUriExposure(); } private void bindViews() { img_show = (ImageView) findViewById(R.id.img_show); btn_start = (Button) findViewById(R.id.btn_start); btn_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { File dir = new File(Environment.getExternalStorageDirectory(),"pictures"); if(dir.exists()){ dir.mkdirs(); } currentImageFile = new File(dir,System.currentTimeMillis() + ".jpg"); if(!currentImageFile.exists()){ try { currentImageFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } Intent it = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); it.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(currentImageFile)); startActivityForResult(it, Activity.DEFAULT_KEYS_DIALER); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == Activity.DEFAULT_KEYS_DIALER) { // Bundle bundle = data.getExtras(); // Bitmap bitmap = (Bitmap) bundle.get("data"); // img_show.setImageBitmap(bitmap); img_show.setImageURI(Uri.fromFile(currentImageFile)); } // switch (requestCode){ // case REQUEST_CODE_TAKE_PICTURE: // img_show.setImageURI(Uri.fromFile(currentImageFile)); // break; // } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)