第一行代碼-多媒體通知 相機 相冊 音頻視頻播放

  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;
    
    <provider
        android:authorities="com.scy.android.cameraalbmtest.fileprovider"
        android:name="android.support.v4.content.FileProvider"
        android:exported="false"
        android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths"/>
    </provider>
    
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
        <external-path name="my_images" path="" />
    </paths>
    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;

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章