rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

android開発

android開発 ActivityResultContractsとIntentで他アプリを起動するコード例

2023 Mar. 05. 端末のストレージを読み込む権限を取得し、Intent.ACTION_OPEN_DOCUMENT_TREEで端末組み込みファイラーを開き、ディレクトリを取得するコード AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.sytes.rokkosan.myfilerchooser"> </manifest>

android開発 ActivityResultLauncherの定義は、所属するクラスのフィールドとして記述しなければならない

2023 Feb. 25. 出典ページ registerForActivityResultで「attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.」 - Qiita メソッド定義の中で記述すると「attempting to register while c…

android開発 Intentでのファイラー起動

2023 Feb. 11. 2023 Jan. 15. 環境 Android 11 compileSdk 33 minSdk 30 targetSdk 33 ファイラーを起動できるIntent Intent.ACTION_GET_CONTENT Intent.ACTION_OPEN_DOCUMENT Intent.ACTION_OPEN_DOCUMENT_TREE "Intent.ACTION_OPEN_DOCUMENT"、"Intent.ACT…

android開発 Fragment利用

2022 Oct. 23. 出典 [Android & Kotlin] Fragment をActivityに追加 [Android] Fragment コードで記述する build.gradle (Module: app) "implementation 'androidx.fragment:fragment-ktx:1.5.3'"を記述する plugins { id 'com.android.application' id 'org…

android 画面回転でのActivityのデータ、LiveDataの扱われ方

2022 Oct. 11. 2022 Oct. 10. 画面回転すると、OnDestroyイベントが発生し、Activityが破棄され、その後、Activityが再生成され、onCreateイベントが発生する。 画面回転後のデータの値 Activityデータは破棄される onCreateイベント時に初期化されるActivit…

android LiveDataでのpostValueとsetValueの違い

2022 Sep. 23. 参照先 AACのLiveDataのsetValueとpostValueの違いについて - log.atsumo android — MutableLiveDataのsetValue()とpostValue()の違い setValueはメインスレッドでのみ利用可能。 postValueはメインスレッド以外のスレッドで利用可能。 下…

android開発 ViewModel オブザーブはMutableでないLiveDataをオブザーブすればよい

2022 Aug. 13. MainActivity.kt class MainActivity : AppCompatActivity() { val binding: ActivityMainBinding by lazy {ActivityMainBinding.inflate(layoutInflater)} override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstan…

android開発 ViewModelインスタンスの取得は"by viewModels()"

2022 Aug. 13. 出典 by ViewModels() を使って ViewModel を取得する方法 | 穀風 Androidアプリ:ViewModel と LiveData + オブザーバ でUIとデータを管理(Kotlin編) – KOMMLOGG "val hogeViewModel = ViewModelProvider(this).get(HogeViewModel::class.j…

android開発 指定ディレクトリの音声ファイル・動画ファイルをランダムに再生するアプリ(ViewModel非対応。縦画面固定)

2022 Jul. 20. build.gradle(Module: app) plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } android { compileSdk 31 defaultConfig { applicationId "net.sytes.rokkosan.randomplayer" minSdk 24 targetSdk 31 versionCode 1…

android開発 ファイル・ピッカーで取得したディレクトリをContentResolverのクエリーでのディレクトリ指定に使う

2022 Jul. 19. 2022 Jul. 18. // ファイル・ピッカーによるディレクトリ取得 fun myMain() { // ボタンがタップされたら、ファイルピッカーによりディレクトリを取得 buttonSelectDir.setOnClickListener { openFilePicker() } } private fun openFilePicker…

android開発 ContentResolver query条件書式 ( selectionClause )

2022 Jul. 18. メディアファイル抽出 val selectionClause = MediaStore.Files.FileColumns.MEDIA_TYPE + " = " + MediaStore.Files.FileColumns.MEDIA_TYPE_AUDIO + " OR " + MediaStore.Files.FileColumns.MEDIA_TYPE + " = " + MediaStore.Files.FileColu…

android 各場面での外部ストレージのパス表現

2022 Jul. 18. Intent.ACTION_OPEN_DOCUMENT_TREEでファイル・ピッカーから取得したディレクトリ文字列 プライマリ・ストレージ content://com.android.externalstorage.documents/tree/primary%3Amydir1%2Fmydir2%2Fmydir3 %3A %2F はパス区切り文字 SDカー…

android開発 Spinner ドロップダウンリストの位置番号(インデックス番号)を取得する

2022 May 14. 端末 android 11 ( APIレベル 30 ) 概要 ドロップダウン表示する文字列の配列を作る Spinnerを置くアクティビティにAdapterView.OnItemSelectedListenerインターフェースを組み込み、onItemSelected()とonNothingSelected()を実装する onItemSe…

android開発 Spinner ArrayAdapterへの配列のセット(動的実装/静的実装)

2022 May 14. 参照先 【Androidアプリ開発】ドロップダウンリストの作成と選択した値の取得方法 | プログラミング・開発の備忘録

android開発 ContentResolver 音声メディア・動画メディアへのクエリによるメディア情報取得

2022 May 08. 2022 May 05. 端末 android 11 ( APIレベル 30 ) ContentResolverでの音声メディア・動画メディアへのクエリで得られるメディア情報 クエリできたメディア システムにデフォルト内蔵の音声ファイル システムメモリ(プライマリストレージ)のMo…

android開発 ContentResolver 複数のメディアタイプについてURI・ファイルパスを取得する

2022 May 04. 端末 android 11 ( APIレベル 30 ) audioメディアとvideoメディアのURI・ファイルパスを取得するサンプルアプリ MainActivity.kt package net.sytes.rokkosan.mygetaudioandvideouriwithcontentresolver /* 2022 May 04. 2022 May 03. Ryuichi …

android開発 ストレージ内の指定したディレクトリ内の音声ファイルをランダムに再生するアプリ

2022 May 08. 2022 May 02. 注 ファイル読み込みパーミッション取得ルーチンを省いているので、端末のアプリ設定で権限許可する必要あり 端末 android 11 ( APIレベル 30 ) build.gradle(Module: app) dependenciesはデフォルトのまま plugins { id 'com.and…

android開発 ContentResolver URIそのものの取得

2022 May 02. 2022 May 01. 端末 android 11 ( APIレベル 30 ) 概要 ContentResolverにてIDを取得し、ContentUris.withAppendedId()でIDからURIを取得する 手順 ContentResolverのqueryのprojectionに"MediaStore.Audio.Media._ID"をセットする query結果集…

android開発 ContentResolverでメディアファイルのファイルシステム上のパスを取得

2022 May 02. 2022 May 01. 端末 Android 11 (API レベル 30) * ContentResolverで取得したURIのpathプロパティ(getPath()メソッド)で得られる文字列はファイルシステム上のパスとはまったく異なる * ContentResolverで取得したURIのtoString()メソッドで…

android開発 外部ストレージ共有領域の特定ディレクトリ内のメディアファイル取得

2022 May 08. 2022 Apr. 30. 端末 android 11 ( APIレベル 30 ) 参考 android開発 ContentResolver 音声メディア・動画メディアへのクエリによるメディア情報取得 - rokkonet 概要 ContentResolverのprojectionに"_data"をセットしてメディアファイルをクエ…

android開発 deprecatedなメソッドを使わずに外部ストレージ共有領域のパスを取得するにはファイルピッカーを使うしかないと思われる

2022 May 01. 2022 Apr. 30. Android 11 (API レベル 30)にて deprecatedなメソッドを使わずに外部ストレージ共有領域のパスを取得するにはファイルピッカーを使うしかないと思われる。 参照 android開発 ファイル・ピッカーを開いてディレクトリを選択する…

android開発 ダイアログから呼び出し元に値を渡す

2022 Apr. 29. (1) ダイアログ内で、呼び出し元のContextを通じて、呼び出し元に値を渡す android開発 ダイアログから呼び出し元Activityに値を渡す(Contextを利用) - rokkonet (2) 独自リスナーを定義して呼び出し元に値を渡す android開発 ダイアログか…

android開発 Fragment内でnon-nullなActivity Contextを取得する関数はrequireContext()

2022 Apr. 29. 2022 Apr. 28. 出典 日付選択ダイアログを追加する記述の、contextのType mismatch。 Android で一般的な Kotlin パターンを使用する | Android デベロッパー | Android Developers Fragment#requireContext : non-nullなActivity Contextを返…

android開発 ダイアログから呼び出し元Activityに値を渡す(Contextを利用)

2022 Apr. 29. 2022 Apr. 24. 出典 DialogFragment を利用したカスタムダイアログからActivityに値を返す | iPentec 参考 android開発 ダイアログから呼び出し元に値を渡す - rokkonet 概要 呼び出し元Activityに、値を取得するメソッドonReturnValue()を定…

android開発 Intent.ACTION_OPEN_DOCUMENT_TREEでファイル・ピッカーから選択した外部ストレージ内ディレクトリのURIのAuthorityは、すべて "com.android.externalstorage.documents" となっている

2022 May 01. 2022 Apr. 30. 2022 Apr. 10. 利用android端末のバージョン 11 build.gradle(:app) compileSdk 32 defaultConfig { minSdk 24 targetSdk 32 } 手元のAndroid端末で、Intent.ACTION_OPEN_DOCUMENT_TREEでファイル・ピッカーを開き、選択した外部…

android開発 ストレージ内のファイルの種別(URIのauthorityの種別)

2022 Apr. 29. 2022 Apr. 09. 出典 Android: Files: Unable to get file path from content URI when file is selected from RECENT section in file browser - Stack Overflow android - cursor didn't have _data column not found - Stack Overflow Andro…

android開発 content型URIのメディア種別の判別

2022 Apr. 09. 出典 Androidで 静止画と動画のピッカーで選択したコンテンツのファイルパスを取得する - 酢ろぐ! uri.toString().contains(TYPE)を使う。 ## mediaUri is an instance of Uri if (mediaUri.toString().contains("image")) { // 静止画の場合…

android開発 「すべてのファイルへのアクセス」権限

2022 Apr. 03. 出典 「すべてのファイルへのアクセス」(MANAGE_EXTERNAL_STORAGE)権限の使用 - Play Console ヘルプ ストレージ デバイスのすべてのファイルを管理する | Android デベロッパー | Android Developers Android 11(API レベル 30)以降 mani…

android開発 ファイル・ピッカーを開いてディレクトリを選択するには Intent.ACTION_OPEN_DOCUMENT_TREE を利用する

2022 May 01. 2022 Apr. 30. 2022 Mar. 26. 参考ページ プログラミングに関する質問とベストアンサー - CODE Q&A android開発 Intent.ACTION_OPEN_DOCUMENT_TREEでファイル・ピッカーから選択した外部ストレージ内ディレクトリのURIのAuthorityは、すべて "c…

android開発 Do not concatenate text displayed with setText. Use resource string with placeholders.

2022 Mar. 20. 2022 Mar. 19. コードの中で文字列を連結することは非推奨。 文字列リソースの中で定義すればよい。 string.xmlの記述例 %1$s : 最初のパラメータを文字列としてこの位置に置く %2$s : 2番目のパラメータを文字列としてこの位置に置く %3$d : …