rokkonet

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

Ubuntu 20.04 ネットワーク不通対処

2022 Sep. 04.

出典 Ubuntuで有線LANで接続しようとしても、「デバイスは管理されていません」と出てしまう時の簡単な解決法

Ubuntu 20.04で、NetworkManagerに「デバイスは管理されていません」と表示され、ネットワークがつながらなかったが、出典ページのとおり、/etc/NetworkManager/conf.d/10-globally-managed-devices.conf という空ファイルを作成し、PCを再起動することで解決した。
/etc/NetworkManager/conf.d/10-globally-managed-devices.conf に下記を書き込んでも動作した。

[keyfile]
unmanaged-devices=none

Ubuntu 20.04 しばらくしたらネットワークが切断する現象

2022 Sep. 4.
2022 Aug. 28.

Realtek RTL8168 LANカードが、Ubuntu 20.04、Manjaro Linux(Arch Linux)のどちらでも、(サスペンド・スクリーンサーバーなどは設定せず)しばらく放置するとインターネットにつながらなくなる。
Ubuntu 20.04では、インターネットにつながらなくなっても、LAN内では通信可能。Manjaro LinuxでのLAN内通信状況は未確認。
Ubuntu 20.04のデフォルトでr8169となっているドライバをr8168に変更したりとネット情報に当たったが改善しないので、Intel 82574L LANカードに変更した。
Intel 82574L LANカードをPCに装着し、BIOSで内蔵RTL8168 LANを不使用としただけで、IP設定を再設定せずに利用できた。

$ lspci
Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

$ lsmod
e1000e

しかし、Ubuntu 20.04で、しばらく放置するとインターネットにつながらなくなる不具合は直らなかった。
NetwokManagerで回線をオン・オフしてみても、"# systemctl restart network-manager.service"を実行しても改善しない。
"# systemctl restart network-manager.service"でネットワークが一時的に復活することがあるが、すぐにまたダウンする。

CHUWI LarkBox Pro Mini PCのWindows 11へのアップデート

2022 Aug. 21.

参考ページのような記事があるが、2022年8月に購入したCHUWI LarkBox Pro Mini PCでは、Windows 10の「設定 -> Windows Update」から何の支障もなくWindows 11に更新できた。

参考ページ LarkBoxProのWindows11アップデート - #5 by PaRRoT - LarkBox - CHUWI | Official Forum

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(savedInstanceState)
        setContentView(binding.root)

        val myViewModel: MyViewModel by viewModels()

        myViewModel._myString.value = "Hello"

        val myStringObserver = Observer<String> { it -> 
            binding.textView01.text = it
        }

        myViewModel.myString.observe(this, myStringObserver)
    }
}


MyViewModel.kt
class MyViewModel: ViewModel() {
    val _myString = MutableLiveData<String>("")
    val myString: LiveData<String> get() = _myString
}

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

2022 Aug. 13.

出典
by ViewModels() を使って ViewModel を取得する方法 | 穀風
Androidアプリ:ViewModel と LiveData + オブザーバ でUIとデータを管理(Kotlin編) – KOMMLOGG

"val hogeViewModel = ViewModelProvider(this).get(HogeViewModel::class.java)"でのViewModelインスタンス取得はdeprecatedとなった。
Activity/Fragment内で"val hogeViewModel: HogeViewModel by viewModels()"とする。

build.gradle(Module:app)
dependencies {
    implementation "androidx.fragment:fragment-ktx:1.5.2"
}

次が必要と書かれたサイトもあるが、書かなくても動作した

    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
    implementation "androidx.activity:activity-ktx:1.5.1"


MainActivity.kt
class MainActivity : AppCompatActivity() {
    // ViewModelインスタンス生成
    private  val myViewModel: MyViewModel by viewModels()

    // オブザーバー作成
    val myStringObserver = Observer<String> { it ->  // "it ->"は省略可能
        binding.textView01.text = it
    }

    // myViewModel.myStringのオブザーブをセット
    myViewModel.myString.observe(this, myStringObserver)
}


MyViewModel.kt
class MyViewModel: ViewModel() {
    // String型LiveData変数を作成 
    val _myString = MutableLiveData<String>("")
    val myString: LiveData<String> get() = _myString
}