Android関連のことを調べてみた2020年01月12日

Android関連のことを調べてみた2020年01月12日

FlutterのNavigatorの使い方と仕組み

##はじめに

この記事では、[Navigator Widget](https://docs.flutter.io/flutter/widgets/Navigator-class.html)について解説します。(以下、Navigatorとします)
以下の2部構成です。

1. Navigatorの使い方
2. Navigatorの仕組み

ただし、この記事では、遷移時のアニメーションの作り方については触れていません。ご注意ください。

この記事のサンプルコードは以下のページに置いています。
https://github.com/HeavenOSK/basic_navigator

##Navigatorとは
[Navigator](https://docs.flutter.io/flutter/widgets/Navigator-class.html)はFlutterでページ遷移を実装する際に使用するWidgetです。

##Navigatorの使い方
Navigatorの使い方について解説します。

解説する内容は、以下の通りです。

1. 進む遷移をして、戻る遷移を行う
2. 戻

元記事を表示

Androidでリモートコントローラにリストを表示する際のポイント

# 概要

ここでは、Android音楽プレイヤーを作る際、メディアの一覧表示に対応したリモートコントローラーにメディア一覧を表示するための情報について書きます。

画像は、Kenwood MDV-Z904W というカーナビの画面で、Play Musicを動かしたときに見られるリストの表示サンプルです。

![IMG20191107210704.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/78503/6305932c-1c56-0074-bec6-8e6baaf96855.jpeg)

# 基本情報

## AndroidのMediaSession

Androidで音楽再生アプリ開発を行う場合、MediaSessionを使って音楽情報を管理する方法が提供されています。

[メディア アプリ アーキテクチャの概要  \|  Android Developers](https://developer.android.com/guide/topics/media-apps/media-apps-overv

元記事を表示

adbコマンド

Androidアプリを開発するにあたって、
よく使うADBコマンドからたまにしか使わないけど毎回調べてしまうものまとめました。

アプリ(APK)のインストール

デバイスに未インストール

“`
adb install
“`

インストール済み(上書きインストール)

“`
adb install -r
“`

インストール済み(ダウングレード)

“`
adb install -d
“`

接続済み端末の確認

“`
adb devices
“`

端末指定

“`
adb -s *
“`
device idは接続済み端末の確認のコマンドにて取得
*はinstall, uninstallなど指定した端末に対して行いたいコマンド

ファイルの転送

“`
adb push <転送するファイル名> <転送先のパス>
“`

ファイルの取得

“`
adb pull <取得元のパス>
“`

AlarmManagerの設定時刻

[【Android】adbを使ってAlarmManagerの実行予定時間を確認する](

元記事を表示

FlutterのListViewでリストを削除した際のA dismissed Dismissible widget is still part of the tree

## はじめに
最近Flutterの勉強を開始しました。
初めてのアプリということで、[ToDoアプリ](https://github.com/kazumaz/flutter-study/tree/master/todo_app)の開発を行っていました。
 
ListViewというwidgetを使っているのですが、途中エラーが発生し困ったので解消法の共有です。
超初心者向けなのであしからず。
 
## 現象
スクリーンショット 2020-01-10 0.03.41.png

上記のようなTodoリストを作成し、各 TodoはFlipすることで削除できるようにしました。
しかし、test3→test2→test1の順で削除すると、問題なく削除されるのですが、test3を削除する前にtest2を削除するとエラーが発生す

元記事を表示

Android で Debian のデスクトップ環境を動かして日本語入力できるようにするところまで

Android に UserLAnd という Linux ディストリビューションを環境構築するアプリケーションがあるのですが、
デスクトップ環境でどうしても日本語入力が出来なかった(日本語入力が起動してくれない・・・)のであれこれ調べて試してみたものが以下になります。
このあと、Visual Studio Code + Graphviz で Markdown + PlantUML な環境も作りたいと思っています。

## 日本語入力(Anthy)のインストール

1. UserLAnd をイントール
2. UserLAnd を起動して Lxde を選択する(Debianを選択すると日本語入力の設定がうまく行かなかった)
3. IDとパスワード(VNCも含めて2箇所)入力しCONTINUEボタンを押す→XSDLを選択してCONTINUEボタンを押す
4. 数時間放置(端末の速度とネットワーク環境に依存すると思われる。)→Debianのデスクトップ画面起動(XServer XSDLが入っていない場合にはインストールを促されるのでインストールをする)→そこからまた数時間放置(左上にコンソール

元記事を表示

Androidーイベントリスナ

#目指す成果物
数字を入力して送信ボタンを押したら,以下のような文字列を表示させるものを作ってみましょう!
スクリーンショット 2020-01-11 9.46.22.png

###ソースコード
https://github.com/syuheifujita/helloListener

#手順
1. リスナクラスを作成する

“`MainActivity.kt
package com.example.hellolistener

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.

元記事を表示

[Unity][Fee]UnityAndroidからContent://のファイルを読み込む。

#はじめに
自作ライブラリ開発日記です。
https://github.com/bluebackblue/fee_core

#なにが問題なのか
「content://」から始まるファイルを読み込むためには「android.content.ContentResolver」を使用する必要がある。
VirtualFileとそうでないファイルでInputStreamの作成方法が異なる。

#コード
“`cs
/** 更新。
*/
public System.Collections.IEnumerator Main(string a_uri)
{
//バイナリファイルとして開く。
Fee.File.Item t_file_item = Fee.File.File.GetInstance().RequestLoad(Fee.File.File.LoadRequestType.LoadFullPathBinaryFile,new Fee.File.Path(a_uri));

//読み込み待ち。
while(t_file_item.IsBusy() == true){
yield r

元記事を表示

AndroidでRealmStudioを使ってdefault.realmの中身を見る

## pathを通す
Android Studio > File > Other Settings > Default Project Structure… で確認する。

“`zsh:.zshenv
export PATH=”/…/Android/sdk/platform-tools:$PATH”
“`

## adbコマンド
そのままじゃ権限がないので、pullできるところにdefault.realmを持ってきたい。

“`zsh
$ adb devices // 接続中デバイスの確認
$ adb shell
$ adb run-as // パッケージ名
$ cp -p files/default.realm /sdcard/. // とりあえずsdcardディレクトリにコピー
$ exit
$ exit
$ adb pull /sdcard/default.realm . // Desktopなど任意の場所で
“`
これでRealmStudioで開ける。

元記事を表示

Android + Termux で Vulkan 開発を行うメモ

## 背景

* Android で Vulkan でレイトレーシングや機械学習したい.
* Android で Vulkan(C/C++)開発を効率化したい
* Gradle or Android Stuio で Java(Kotlin)経由で JNI で Vulkan とかめんどくさすぎる.
* とりあえず compute 実行でよいので, Vulkan 開発と動作チェックする仕組みを作りたい

元記事を表示

android studioのJavaの場所

ターミナルからgradleビルドをするときにandroid studioで使っているものと同じものを使いたいと思い、Preferenceあたりを探したがなかなか見つからなかったのでメモ。

結論としてはAndroidStudioのPreferenceではなく
**File > Project Structure > SDK Location**
のJDK locationに見つけた。
下記のように.zshrcに追加した。

“`zsh:.zshrc
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
“`

元記事を表示

技術書典のスゝメ 〜技術同人誌を読もう!〜

# はじめに
年末年始にかけて、かなり自分的に良い技術同人誌と出会えたので、その紹介を兼ねて投稿します。
(当方AndroidエンジニアのためAndroidに話題が偏ります)

# 技術書典とは?
**展**ではなく**典**です。念のため。

[「技術書典」](https://techbookfest.org/)は、主にIT系の技術者が技術系の同人誌を頒布するための即売会です。**ざっくり言うと技術者向けのコミケ的なものです。**
2016年から年2〜3回ペースで開催され、今までに全7回が開催されています。頒布された本は[BOOTH](https://booth.pm/ja)で取り扱っているものも多いです。

# 技術同人誌の魅力
「技術書の同人誌? なにが良いの?」と思われる人も多いかと思います。私も半年ぐらい前まではその存在すら知りませんでした。

自分的に「いいね!」と思ったポイントを紹介していきます。

## 1. 最新の情報をキャッチアップできる
なんといっても技術同人誌の最大の魅力は、「**(ほぼ)現役のエンジニアが、今の活きた知識をもとに書き上げた技術書である**」とい

元記事を表示

未経験から半年で初Androidアプリ制作!女性プログラマーが可愛いフリー素材探しに苦労した!!

##アプリをリリースの前に…
Androidアプリを初めての制作をしてみました。
最初は、就活の為の成果物としてしてアプリを作っていたのですが、やはりせっかく作ったのでGoogle Play Storeにアプリを出すことに決定!!
いざアプリをGoogle Play Storeにあげる前に問題が、、、、
**画像の著作権ガン無視問題**
アプリをGoogle Play Storeに出す気がなかったので忘れていました。
初心者が忘れがちなミスだと思います。
皆さんは作るときに気を付けてくださいね。
私が使ったフリー素材サイトを下に載せてますが、、、**もっと可愛い素材が欲しい**:frowning2:
プログラマーの皆様、コメントでぜひおすすめのフリー素材サイト教えて頂けると幸いです:exclamation:

##フリー素材が探せるサイト
私は、急いで画像のすり替えを行いました。
そこで私が使ったフリー素材を探せるサイトのリンクをシェアするので、ぜひ参考にしてください。
フリー素材をダウンロードできても商業利用はできない場合があるので**利用規約**を必ず確認してください。

[ill

元記事を表示

Android HCE 調査メモ(その3)

# 目的
C#アプリでもHCEと通信できることを確認します。

# 環境
今回は以下の機種で動作確認しました。
#### Android側
– ビルド環境
– Android Studio 3.5.3

– 端末
– Sony SO-3L
– Android 9.0 (API level 28)

#### PC側
– NFCリーダ
– ACR1251CL-NTTCom
(PC/SCモードで使用)
– OS
– Windows 10 64bit
– ビルド環境
– Visual Studio 2019
– 言語
– C#

# Android側アプリ

過去の記事を参照ください。
[Android HCE 調査メモ(その1)](https://qiita.com/tkhr68000/items/66de411d5eb007fea3ca)
AIDは「F222222222」となっています。

# PC側アプリ
とりあえず、.NET Core コンソールアプリで作成することにします。
(GUI等は後々…)

## プロジェクト開始
Vis

元記事を表示

EditText.addTextChangedListenerに便利な拡張関数が追加されていました

環境

“`build.gradle
implementation ‘androidx.core:core-ktx:1.1.0’
“`

EditTextの入力中文字列を取得する時に使うTextWatcherは3つのコールバック関数をもつインターフェースです。

“`kotlin
editText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}

override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}

override fun afterTextChanged(s: Editable?) {
}
})
“`

| コールバック | 説明

元記事を表示

Android HCE 調査メモ(その2)

# 目的
Android HSEに対し、PC(PC/SC)からの接続を確認します。

# 環境
今回は以下の機種で動作確認しました。
#### Android側
– ビルド環境
– Android Studio 3.5.3
– 端末
– Sony SO-3L
– Android 9.0 (API level 28)

#### PC側
– NFCリーダ
– ACR1251CL-NTTCom
(PC/SCモードで使用)
– OS
– Windows 10 64bit
– 言語
– Python 3.8.0

# Android側

前回の記事を参照ください。
[Android HCE 調査メモ(その1)](https://qiita.com/tkhr68000/items/66de411d5eb007fea3ca)

AIDは「F222222222」となっています。

# HSE通信確認アプリ

簡単に確認するため、pythonを使って試してみます。

## モジュール追加
pythonからPC/SCを操作するため、モジュール追加します。
pysca

元記事を表示

AndroidStudio Error3 Activity existsが出た

#まずここではまった
私の開発環境は基本Macです。
私はいつもアプリを作って正常なビルドをしているか確かめるときは必ず、エミュレータを使用します。
しかし、スマホで一度使用してみたいと思い、実機ビルドするとタイトルのような文字が出てビルドできませんでした。

開発環境
・デバイス HUAWEI P30 lite
・パソコン MacBook Pro
・AndroidStudio 2020/01/08現在最新のもの

今回はこのエラーが出たときの私の対処法を教えよう!
#対処法
ぜひ一度やってみてください!
##その1 作り直す
私が試したことはもう一度アプリを再度**一から作り直す**ことです。
といってもコードをコピペするだけなので楽でした。

でも時間を無駄にしていると考えると苦痛。。。
しかし、残念ながらやはり同じエラーが起こってしまいました。

##その2 パッケージ名を変更する。

パッケージ名の変更方法はこちらのQiitaの投稿をご覧ください。(私の投稿ではありません)
[リンク]https://qiita.com/m_saeki/items/a66a21a5150444

元記事を表示

Android HCE 調査メモ(その1)

# 目的
AndroidのHSEのサンプルを実行して、動作確認してみます。

# 環境
今回は以下の機種で動作確認しました。
#### Android開発環境
– ビルド環境
– Android Studio 3.5.3

#### 端末
– 1台目
– Sony SO-3L
– Android 9.0 (API level 28)
– 2台目
– Sharp SH-03J
– Android 7.1.1 (API level 25)

# HSEについて
まずは、前提としてHCEについて説明します。

正式なドキュメントは以下を参照してください。
[ホストベースのカード エミュレーションの概要](https://developer.android.com/guide/topics/connectivity/nfc/hce)

簡単な説明をすると、Android上でユーザーの任意のアプリとNFCリーダとの通信を実現するための仕組みです。
通常、NFC通信はAndroidアプリまで通信が届きません。
NFCリーダからの通信は、通常はセキュアエレメントとの通信で完結しま

元記事を表示

LiveDataを使わずにRxでPagingする

みなさんPaging使ってますか?

公式ドキュメントを見ると、LiveDataを使わずにRxJava2を使用しても良いということだったのですが、いまいちどのように実装するのかがよくわからず試行錯誤した結果を書き残したいと思います。

##前提
– 以下の条件の方々を読者と仮定します
– AAC Pagingがどのようなものか大体わかる
– これからPagingを導入しようと思っている
– LiveDataは導入していない

##やること
####AndroidXの場合
>***DataSourceFactory#toObservable*でPagedListのObservableを作成する**
>or
>***LivePagedListBuilder*を使うかわりに*RxPagedListBuilder*を使う**

####AndroidXじゃない場合
>***LivePagedListBuilder*を使うかわりに*RxPagedListBuilder*を使う**

まず、PagingのRxサポートはオプショナルなのでbuild.gradleに追加

元記事を表示

AndroidStudioのDesignタブにAttributeが表示されない

記事にするのも馬鹿らしい話なんですが、同じ所で躓いて時間の無駄遣いをする人が生まれないように戒めを込めて書いておきます。

#戒め
 AndroidStudioで追加ダウンロードが必要なコンポーネントを使う時は、一度AndroidStudioを再起動する。そうしないと、DesignタブにAttributeが表示されなかったり、Textタブで予測変換が効かなくなります。

##問題発生時の状況
 [TextInputLayout](https://qiita.com/hkurokawa/items/baf0dca930a32a5a7f92)なんて便利な物を知って、意気揚々とダウンロードし配置しました。ダウンロードするじゃん.png
※画像はGridLayoutのものですが、やっていることは一緒です。

 さて、

元記事を表示

F-Droidを使ってオープンソースのAndroidアプリをインストールしよう。

## F-Droidとは?

> F-DroidはAndroidに対応したソフトウェアリポジトリおよびアプリケーションストアである。Google Playと機能は類似するが、扱っているのはフリーかつオープンソースのソフトウェアのみである。

[Wikipediaより](https://ja.wikipedia.org/wiki/F-Droid)

## インストール方法

https://f-droid.org/

からインストール!!

## おすすめアプリ

オープンソースの広告ブロッカー

[DNS66](https://f-droid.org/en/packages/org.jak_linux.dns66/)

をインストールしてAndroid端末から広告を一掃しよう!!!

#まとめ

オープンソースのアプリで快適なインターネットライフを。

元記事を表示

OTHERカテゴリの最新記事