rokkonet

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

2021-09-01から1ヶ月間の記事一覧

android開発 DefaultSharedPreferences Android 10(API level 29)以降での設定

2021 Sep. 26. 出典 sharedpreferences - PreferenceManager getDefaultSharedPreferences deprecated in Android Q - Stack Overflow DefaultSharedPreferencesの利用は、Android 10(API level 29)以降は次の設定を要する build.gradle(modle:app) depend…

android開発 build.gradle(module:app) implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"は不要

2021 Sep. 26. 出典 kotlin-stdlibの依存関係をgradleに書く必要はなくなりました - 縁側プログラミング kotlin 1.4.0以降ではbuild.gradle(module:app)に次の設定は不要。 dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_vers…

android開発 kotlin EditTextへの文字列のセットにはsetText()を使う

2021 Sep. 23. EditTextへの文字列のセット val str: String = "abc" (NG) editTexr01.text = str // 「EditableにStringを代入しようとしている」とのエラーになる (OK) editTexr01.setText(str)

android開発 画面回転後のActivityにおいてLiveDataによるデータ更新を防ぐ

2021 Sep. 18. 状況 ViewModel内のLiveDataの値に従ってActivityで音楽再生するようにしていると、画面回転によって意図しない音楽再生となった時の対処 概要 Activityのcreateが直前にdestroyされたことによるものなのかどうかを示すフラグ変数を持つ。 onS…

android開発 ViewModel コルーチンで非同期ワーカースレッド内での処理結果をBoolean値で取得する

2021 Sep. 17. 概要 下記コード例では、 getConnectionSmb()において、非同期ワーカースレッドでSMB接続を行うconnectSmb(): Booleanの結果を取得している。 getConnectionSmb()内でviewModelScope.launch(Dispatchers.IO) { }を利用し、その中でconnectSmb(…

jcifs-ng SMBサーバーへの接続の成否確認

2021 Sep. 17. SmbFile#list()で例外が発生するかどうかで確認できる。 接続先パスがファイルでもディレクトリでも同じように動作した。 SmbFileのコンストラクト時に接続成否を把握できなかった。 サンプルkotlin androidコード fun connectSmb(): Boolean …

android開発 SMBサーバーもしくは端末内からランダムに1つの音声ファイルをストリーミング再生する

2022 Jul. 18. 2022 Feb. 13. 2021 Dec. 05. 2021 Nov. 14. 2021 Sep. 16. ソース保管場所 https://bitbucket.org/arsmus/randomsmbsoundplay/src/master/ 概要 SMBサーバーからランダムに1つの音声ファイルをストリーミング再生する。 SMBサーバーにつなが…

SMBサーバーからランダムに1つの音声ファイルを取得するkotlinコード

2022 Feb. 13 2021 Sep. 18. 2021 Sep. 12. SMBサーバーへの接続にjcifs-ngを利用する。 data class AudioFileProperty(val smbPath: String, val fileSize: Long) val audioExtension: String = "\\.mp3|\\.wav|\\.aac|\\.au|\\.gsm|\\.m4a|\\.ogg|\\.flac"…

android開発 URIからファイルシステム上のパスを取得する

2022 May 02. 2021 Sep. 12. 出典 Invalid URI at getting path in different android api - Stack Overflow 端末 Android 11 (API レベル 30) 概要 ContentResolverにて、collectionにuriを、projectionに"_data"をセットしqueryする サンプルkotlinコード …

android開発 Intentで起動するアプリを指定する

2022 Dec. 04. 2022 Jan. 30. 2021 Sep. 12. Intent#setPackageでアプリを指定する 音声uriとVLCメディアプレーヤーを指定するインテント例 // audioUri: Uri URI of an audio content val audioIntent = Intent() audioIntent.action = Intent.ACTION_VIEW …

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

2021 Sep. 11. 事象 TextViewへのsetText()の引数に、変数・式といったリテラル以外を含む式を入れると"Do not concatenate text displayed with setText. Use resource string with placeholders."と警告される。 対応 コードではなく、Stringリソース(R.st…

android開発 kotlin コルーチン内でのThread.sleep( )はコルーチン内でsleep( )を実行したスレッドを指定時間停止する

2021 Sep. 09. 下記コードではワーキングスレッド(Dispatchers.Default)が5秒間停止する。 viewModelScope.launch { withContext(Dispatchers.Default) { Thread.sleep(5000L) } } 参考ページ Kotlin Coroutine 入門1: 起動と suspend - Qiita

kotlin 文字列の一番後ろのピリオド以降に指定した正規表現文字列が含まれていればtrueを返す関数

2021 Sep. 06. /* * target文字列の一番後ろのピリオド以降にconditionStr正規表現文字列が含まれていればtrueを返す */ private fun isMatchTail(target: String, conditionStr: String): Boolean { // target中の一番後ろのピリオド(ファイル拡張子の区切…

android開発 ViewModel、LiveData、jcifs-ngを使ったSMBサーバーからのファイルダウンロード、進捗プログレスバー表示

2022 Nov. 23. 2021 Sep. 05. 2021 Sep. 04. インストールしたandroid端末 android バージョン 10 コンパイル環境 compileSdkVersion 30 minSdkVersion 24 targetSdkVersion 30 android studioのプロジェクトのapp/libsにjcifs-ngライブラリを配置 jcifs-ng-…

android開発 LiveDataの利用パターン

2022 Jul. 23. 2021 Sep. 03. ViewModelクラス内でLiveDataを設定する 各LiveData対象について、書き換え可能なMutableLiveDataと読み込み専用のLiveDataの2つの変数を作る。 private val _FOO: MutableLiveData by lazy { MutableLiveData() } val FOO: Liv…

android開発 ViewModel内のコルーチン内の結果でActivityの動作を決めるには。Boolean型suspend関数の結果をActivityに渡す方法

2021 Sep. 05. 2021 Sep. 03. 参考ページ android ViewModelScopeコルーチンでメインスレッドを停止する方法は? - スタック・オーバーフロー コルーチンのlaunchブロック内のデータをlauchブロック外に渡すことはできない。 コルーチン内の結果で返り値を決…