rokkonet

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

2021-01-01から1年間の記事一覧

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ブロック外に渡すことはできない。 コルーチン内の結果で返り値を決…

jcifs-ngによるSMBサーバー接続認証

2021 Sep. 03. 2021 Aug. 31. Up-to-date val prop = Properties() // java.util.Properties prop.setProperty("jcifs.smb.client.minVersion", "SMB202") prop.setProperty("jcifs.smb.client.maxVersion", "SMB300") val baseCxt = BaseContext(PropertyCo…

android開発 ViewModelScopeコルーチンの利用

2021 Aug. 28. build.gradle(module:app)への設定 dependencies { implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0-alpha03" } viewModelScope のデフォルトCoroutineDispatcherはDispatchers.Main viewModelScope のデフォルトの Corout…

android開発 ViewModelを引数付きで生成・初期化する

2021 Aug. 29. 2021 Aug. 28. 概要 ViewModelを継承した引数付きクラスを定義する ViewModelProvider.Factoryを継承した、ViewModelの引数付きインスタンスを生成するためのクラスを定義する MainActivity内でViewModelProvider.Factoryの前記サブクラスのイ…

apply plugin: 'kotlin-kapt' build.gradle(module:app)内の記述場所

2021 Aug. 23. 次の記述で動いた plugins { id 'com.android.application' id 'kotlin-android' } apply plugin: 'kotlin-kapt' 次の記述ではFailedとなった apply plugin: 'kotlin-kapt' plugins { id 'com.android.application' id 'kotlin-android' }

LinuxやWindowsのブラウザでのページURLのメール送信・共有

2021 Aug. 21. スマホでは、共有機能で、ブラウザで開いているページをメールアプリに簡単に送ることができる。 LinuxやWindowsには共有機能がない。 Firefoxなら、「メニュー-> IDメールアドレス -> 1個のタブを端末に送信」でまずスマホに送り、スマホのFi…

Markdown書法での不等号の表現

2021 Aug. 19. 「"4"と"空白文字"と"アンド記号"と"L"と"T"と"セミコロン"と"空白文字"と"5"」で 4 < 5 アルファベットは大文字でも小文字でもよい。 アンド記号(アンパサンド)とセミコロンにはさまれたアルファベットで各種特殊文字を表す。

kotlin Resultクラスによる例外処理

2021 Aug. 19. 例外を補足するrunCatching { }の結果はResult<T>オブジェクトに格納される。 Resultのメソッドで例外発生有無を判定したり、処理の返り値としてResult<T>に格納されたTクラスのインスタンスを取得したりできる。 参考ページ 【Kotlin】try-catch が</t></t>…

firefoxでのマウスのスクロール量を変更する

2021 Aug. 15. 出典 「imwheel」でマウスホイールのスクロール移動量(スピード)を大きく | Pagent about:configでmousewheel.default.delta_multiplier_yの値を変更する

android開発 jcifs-ngで接続したSMBサーバーファイルをandroid端末にコピーする

2021 Aug. 15. /* * リモートのSMBファイルをandroid端末にコピーする * コピー先は、android端末の外部ストレージのアプリキャッシュ領域 * smbFile コピー元リモートのSMBファイル * 返り値 コピー先ファイル */ private fun cpSmbFile2android(smbFile: S…

java/kotlin jcifs-ng SMBサーバーのディレクトリ内の全ファイルを再帰的に取得する

2021 Sep. 06. 2021 Aug. 15. /* * SMBサーバーのすべてのノーマルファイルを取得する再帰関数 * パラメータ * givenDir 取得対象のSMBディレクトリパス。 * tmpSmbNormalFiles 空のMutableList<SmbFile>型変数。 * 1つ前の再帰関数実行結果を次の再帰関数に渡すため</smbfile>…

android開発 MediaPlayer利用時の後始末

2021 Aug. 15. { private val myPlayer: MediaPlayer = MediaPlayer() override fun onDestroy() { // 終了時のMediaPlayerの破棄 if (myPlayer != null) { myPlayer.reset() myPlayer.release() } override fun onCreate(savedInstanceState: Bundle?) { my…

kotlin ファイル拡張子が複数の検索拡張子のいずれかに該当するか調べる

2021 Aug. 15. kotlinで、ファイル拡張子が複数の検索拡張子のいずれかに該当するかを、大文字小文字を区別せずに調べる val strTarget: String = "FILENAME.m4a" val strExtension: String = "\\.mp3|\\.wav|\\.aac|\\.au|\\.gsm|\\.m4a|\\.ogg|\\.mkv|\\.3…

kotlin 文字列の一番後ろのドット以降に検索正規表現文字列が含まれていればtrueを返す関数

2021 Aug. 15. kotlinで、文字列の一番後ろのドット以降に、検索正規表現文字列が(大文字小文字区別なしに)含まれていればtrueを返す関数 /* * target文字列の一番後ろのピリオド以降にconditionStr正規表現文字列が含まれていればtrueを返す */ private f…

kotlin 空のMutableListインスタンス初期化

2021 Aug. 14. var myMutableList: MutableList<T> = mutableListOf<T>()</t></t>

android開発 SMBサーバーに接続し、ディレクトリ内のファイルを再帰的に取得する

2021 Sep. 06. 2021 Aug. 14. androidでjcifs-ng・コルーチンを使ってSMBサーバーに接続し、ディレクトリ内のファイルを再帰的に取得する実装例 app/libsに配置するライブラリ bcprov-jdk15to18-1.69.jar Maven Repository: org.bouncycastle » bcprov-jdk15…

java "nullなList"と"空のList"は異なる

2021 Aug. 14. java "nullなList"は初期化されていない "空のList"は要素が入っていないが初期化されている

java jcifs-ng SmbFile#listFiles() SmbFileインスタンスがファイルの時は失敗する

2021 Aug. 14. jcifs-ngのSmbFileインスタンスがディレクトリでない時、listFiles()は失敗する。 listFiles()実行前に、SmbFileインスタンスがディレクトリかファイルかを確認する必要がある。 androidでの実装例 MainActivity.kt // 認証情報 /////////////…

java jcifs-ng SmbFileクラスのコンストラクタ引数のURLは末尾にスラッシュ(/)を付ける

2021 Aug. 14. 2021 Aug. 13. SMBサーバーに接続するjcifs-ngライブラリでのSmbFileクラスのコンストラクタの引数とするURLは末尾にスラッシュ(/)を付ける。 出典 android - jcifs-ngのSmbFile#listFiles()で得られるファイルが実際と異なるもの(フルパス…

android開発 画面上のキーボード(ソフトキーボード)を非表示にする

2021 Aug. 13. val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(it.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS)