万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    KotlinでURIからString変換

    content:/media/external/video/media/19 みたいなのが変換されずに困った。単にtoString()しても失敗する

    これをすると https://stackoverrun.com/ja/q/2497866 MediaStore.Images.Media.DATAがdeprecatedだしな。

        /**
         * Android 10以降で使用するためのURLからPathの変換
         *
         * @param context Activity.
         * @param uri URI
         */
        fun getPath(context: Context?, uri: Uri): String? {
            var cursor: Cursor? = null
            val column = "_data"
            val projection = arrayOf(column)
    
            try {
                cursor = context!!.contentResolver.query(uri!!, projection, null,
                        null, null)
                if (cursor != null && cursor.moveToFirst()) {
                    val columnIndex: Int = cursor.getColumnIndexOrThrow(column)
                    return cursor.getString(columnIndex)
                }
            } catch (e: Exception) {
                e.printStackTrace()
            } finally {
                cursor?.close()
            }
    
            return null
        }

    https://stackoverflow.com/questions/3401579/get-filename-and-path-from-uri-from-mediastore

    ここからパクってまとめた。