第一行代码-多媒体通知 相机 相册 音频视频播放

  1. 通知

    send.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Notification notification = null;
                    Intent intent = new Intent(MainActivity.this, ShowActivity.class);
                    PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
                    NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                    //适配Android8.0 版本
                    /**
                     * Oreo不用Priority了,用importance
                     * IMPORTANCE_NONE 关闭通知
                     * IMPORTANCE_MIN 开启通知,不会弹出,但没有提示音,状态栏中无显示
                     * IMPORTANCE_LOW 开启通知,不会弹出,不发出提示音,状态栏中显示
                     * IMPORTANCE_DEFAULT 开启通知,不会弹出,发出提示音,状态栏中显示
                     * IMPORTANCE_HIGH 开启通知,会弹出,发出提示音,状态栏中显示
                     */
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                        NotificationChannel mchannel = new NotificationChannel("mychannel01", "scy",NotificationManager.IMPORTANCE_HIGH);
                        //通知小圆
                        mchannel.setShowBadge(true);
                        //可以震动
                        mchannel.enableVibration(true);
                        //闪烁灯指示
                        mchannel.enableLights(true);
                        manager.createNotificationChannel(mchannel);
                        notification = new Notification.Builder(MainActivity.this, "mychannel01")
                                .setContentTitle("我在8.0版本 ")
                                .setContentText("this is content text this is content text this is content text vthis is content text this is content text this is content text ")
                                .setWhen(System.currentTimeMillis())
                                .setSmallIcon(R.mipmap.ic_launcher_round)
                                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
                                .setContentIntent(pi)
                                .setAutoCancel(true)//点击消息后会取消。
                                .setNumber(1)
                                .setStyle(new Notification.BigTextStyle().bigText("this is content text this is content text this is content text vthis is content text this is content text this is content text "))
                                .build();
                    } else {
                        notification = new Notification.Builder(MainActivity.this)
                                .setPriority(NotificationCompat.PRIORITY_MAX)
                                .setContentTitle("this is content title ")
                                .setContentText("this is content text ")
                                .setWhen(System.currentTimeMillis())
                                .setSmallIcon(R.mipmap.ic_launcher_round)
                                .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
                                .setContentIntent(pi)
                                //.setSound(Uri.fromFile(new File("")))
                                //.setVibrate(new long[] {0,1000,0,0})
                                //.setLights(Color.GREEN,1000,1000)
                                .setDefaults(NotificationCompat.DEFAULT_ALL)
                                .setAutoCancel(true)
                                .build();
                    }
                    manager.notify(1,notification);
                }
            });
  2. 调用摄像头和图库并显示

    mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            File image = new File(getExternalCacheDir(),"output_image.jpg");
            try {
                if (image.exists()) {
                    image.delete();
                }
                image.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            //从Android7.0 开始就认为本地的直接路径Uri不安全
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                imageUri = FileProvider.getUriForFile(MainActivity.this,
                        "com.scy.android.cameraalbmtest.fileprovider", image);
            } else {
                imageUri = Uri.fromFile(image);
            }
    
            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
            startActivityForResult(intent, TAKE_PHOTO);
        }
    });
    
    case TAKE_PHOTO:
        if (resultCode == RESULT_OK) {
            try {
                Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
                mImageView.setImageBitmap(bitmap);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
        break;
    
    
    
    
    
    
        
    
    cButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
            } else {
                openAlbum();
            }
        }
    });
    
    private void openAlbum() {
       intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
    }
    
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case 1:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    openAlbum();
                } else {
                    Toast.makeText(this, "you deny the pemission", Toast.LENGTH_SHORT).show();
                }
                break;
                default:
        }
    }
    
    case CHOOSE_PHOTO:
        if (requestCode == RESULT_OK) {
          if (data != null) {
        mImageView.setImageURI(data.getData());
    }
        break;
    default:
        break;

     

你可能感兴趣的:(Android基础篇)