实现功能:相机+摄像+浏览器+打电话+截屏
0.权限
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission><!--打电话权限-->
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
写SD卡权限:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
读SD卡权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
一.使用隐式意图打开浏览器
//mainActivity
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <Button android:text="打开浏览器" android:id="@+id/bt_browser" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:text="打电话" android:id="@+id/bt_call" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:text="打开摄像机" android:id="@+id/bt_video" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:text="打开照相机" android:id="@+id/bt_camera" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:text="截屏" android:id="@+id/bt_jie" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/iv" android:layout_width="match_parent" android:layout_height="200dp" /> <VideoView android:id="@+id/vv" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
//java文件
String[] strings = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CALL_PHONE, Manifest.permission.CAMERA}; public static final int REQUEST_CODE = 101; public static final int VIDEO_CODE = 102; public static final int IMAGE_CODE = 103; private Button bt_browser; private Button bt_call; private Button bt_video; private Button bt_camera; private Button bt_jie; private ImageView iv; private VideoView vv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ActivityCompat.checkSelfPermission(this, strings[0]) != PackageManager.PERMISSION_GRANTED) { requestPermissions(strings, REQUEST_CODE); } } initView(); } private void initView() { bt_browser = (Button) findViewById(R.id.bt_browser); bt_call = (Button) findViewById(R.id.bt_call); bt_video = (Button) findViewById(R.id.bt_video); bt_camera = (Button) findViewById(R.id.bt_camera); bt_jie = (Button) findViewById(R.id.bt_jie); iv = (ImageView) findViewById(R.id.iv); vv = (VideoView) findViewById(R.id.vv); bt_browser.setOnClickListener(this); bt_call.setOnClickListener(this); bt_video.setOnClickListener(this); bt_camera.setOnClickListener(this); bt_jie.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_browser: browser(); break; case R.id.bt_call: call(); break; case R.id.bt_video: video(); break; case R.id.bt_camera: camera(); break; case R.id.bt_jie: jie(); break; } } private void jie() { View view = getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); iv.setImageBitmap(bitmap); try { bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream("/sdcard/a11.png")); } catch (FileNotFoundException e) { e.printStackTrace(); } } private void call() { Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:" + "18360231761")); startActivity(intent); } private void browser() { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW);//设置频道 intent.setData(Uri.parse("https://www.baidu.com"));//设置数据 :网址 startActivity(intent); } private void video() { Intent intent = new Intent(); intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE); startActivityForResult(intent, VIDEO_CODE); } Uri uri; private void camera() { Intent intent = new Intent(); intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); uri = FileProvider.getUriForFile(this, "com.bawei.1705", new File("/sdcard/MUSIC/demo.png")); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); startActivityForResult(intent, IMAGE_CODE); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == VIDEO_CODE && resultCode == Activity.RESULT_OK) { Uri uri = data.getData(); Log.d("ytx", "uri: " + uri); vv.setVideoURI(uri); vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { vv.start(); } }); } else if (requestCode == IMAGE_CODE && resultCode == Activity.RESULT_OK) {//请求码一致 结果码正确 //获得图片的数据 // Uri uri = data.getData(); // Log.d("ytx", "uri: "+uri); iv.setImageURI(uri); } } } //效果图