选择图片和视屏

417 阅读1分钟
class OpenCameraActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_open_camera)

        findViewById<Button>(R.id.button).setOnClickListener {
            // 打开本地相册和视屏
            // test1()

            // 打开本地视屏
            // test2()

            // 打开本地相册
            // test3()

            // 在Android 10 以下 和 Android 10以上打开相册的不同写法
            if (Build.VERSION.SDK_INT > 29) {
                test1()
            } else {
                test4()
            }
        }
    }

    // Android 10 以下的选择图片的方式
    private fun test4() {
        val intent = Intent(Intent.ACTION_PICK)
        intent.type = "video/*;image/*"
        intent.action = Intent.ACTION_GET_CONTENT
        startActivityForResult(
            intent,
            100
        )
    }

    //
    private fun test3() {
        val intent = Intent(Intent.ACTION_PICK) // 打开相册
        intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*")
        startActivityForResult(intent, 200)
    }

    private fun test2() {
        val intent = Intent(Intent.ACTION_PICK) // 打开相册
        intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI, "video/*")
        startActivityForResult(intent, 200)
    }

    // 选择本地图片(成功) 在Android 11的设备上成功
    private fun test1() {
        val intent = Intent(
            Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
        )
        startActivityForResult(intent, 100)
    }
}