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

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

[Android]Google アカウントを利用して Firebase にサインインする

# はじめに

Firebase には FireabaseUI Auth という予め用意された UI を使ってサインインする方法と Fireabase SDK を利用してサインインする 2 つの方法があります。今回は Fireabase SDK を利用して Firebase にサインインする方法を試してみます。また Firebase には Mail・Google・Twitter・Facebook などでサインインする方法があるのですが、色々試すのは大変なので Google を使ったサインインするようにしてみます。

# 準備

Firebase を利用するには Firebase プロジェクト、 Android プロジェクトの作成が必要になります。なので下記の手順でセットアップをしていきます。

## Firebase のプロジェクトを作成する

次の手順で Firebase のプロジェクトを作成していきます。

1. [Firebase] にサインインし、「プロジェクト」の作成を選択する。
2. 「プロジェクト名」に任意の名称を入力して、「続行」を選択する。
3. 「Googleアナリ

元記事を表示

シンガポールの感染追跡アプリを動かしてみる

スクリーンショット 2020-04-19 13.03.08.png

コロナの世界的な感染拡大を受けて、Bluetoothのブロードキャストを利用した感染追跡アプリが各国で開発されています。シンガポールが、3月20日にリリースしたTraceTogetherがその始まりですが、このアプリは仕様とコードが公開されていて、動作を試してみることができます。

リポジトリは4つあり、iOSクライアント(Swift)、Androidクライアント(Kotlin)、サーバ(TypeScript)、そしてBluetoothの電波強度から距離を補正するキャリブレーションのデータです。
サーバはFirebaseのCloud F

元記事を表示

FlutterでFirebaseを使ってみる〜Google Sign In導入〜

今回はFlutterのデフォルトアプリにGoogle Sign Inを導入し、ログイン機能を実装してみたいと思います。
プロジェクトの作成は[前回](https://qiita.com/121a/items/ee488298a5b9468c3b57)までと同様です。
※今回は、Flutterプロジェクト作成時のPackage nameは**一意**になるように設定しておいてください。
スクリーンショット 2020-04-15 17.38.28.png

## 事前準備(共通)
Firebaseプロジェクトにて、Google Sign Inを有効化します。
Firebaseプロジェクトを開き、左ペインから**Authentication**を選択し、**ログイン方法を設定**をクリックします。

元記事を表示

【Android】ダークテーマを反映するアプリ起動時の適切なタイミングについて【Kotlin】

Android 10 で公式にサポートされた「**ダークテーマ(ナイトモード)**」ですが、スレッド式メモ帳アプリ『**[CBnotes](https://play.google.com/store/apps/details?id=cutboss.cbnotes)**』では、Android 10 未満の端末にインストールしても「ダークテーマ(ナイトモード)」の切り替え設定が可能になっています。

以下の公式ガイドに従って、アプリを DayNight テーマから継承すれば、簡単に「ダークテーマ(ナイトモード)」を実現できました。『[CBnotes](https://play.google.com/store/apps/details?id=cutboss.cbnotes)』では、「**[MaterialComponents のダー

元記事を表示

眺めて覚える C# Xamarin (6) 音声合成

#早い話がAndroidにしゃべらすプログラムです。
##なるべくちょいちょいとやるためには、Nugetでプラグインをインストールします。
#Step1
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/27bf828e-c058-2f5c-2a61-c1a5249e8d4e.png)
#Step2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/9b8a593f-3dc1-46e2-1aa1-09237ad908d2.png)
#Step3
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/7b6bf33b-ab16-c7a3-02ce-01b75b5c489d.png)
#Step4
![image.png](https://qiita-image-sto

元記事を表示

Android 11 Labs Day 1 メモ書き

[Android 11 Labs](https://developersonair.withgoogle.com/events/android11labsjp) の Day 1 で気になったところだけメモ。

# はじめに
– 2020年02月に Developer Preview 開始
– 3月、4月も Developer Preview、5月に Beta版 Pixcel にインストール可能
– 7月 – 9月 に正式版リリース予定、たぶん9月ごろかなあ
– 正式版用意できたら Pixel にはすぐ配信される

# パーミッションについての開発者向け最新技術情報
– 位置情報、マイク、カメラのパーミッション取得に「今回だけ許可する」Only this timeが追加される
– コード上は許可は許可だけど、ストレージに「許可済」とかいうのを保持して実装したりしてたらおかしくなるかもね
– なぜパーミッションの取得をしようとしているのか、説明しようね
– 一度拒否されたかどうか判定できる shouldShowRequestPermissionRationa

元記事を表示

[Android]GoogleMap上ランドマークタップして建物情報を取得

# GoogleMap上ランドマークタップして建物情報を取得

以下の手順となります。
・ランドマークタップイベントを取得
・Google Map SDKからデリゲートを通してPlaceIDを取得する
・PlaceIDを使ってplace/details API 実行して情報取得

## ランドマークタップイベントを取得

GoogleMap.OnPoiClickListenerをextends する

“`
class MapsActivity : AppCompatActivity(), GoogleMap.OnPoiClickListener {
mMap.setOnPoiClickListener(this@MapsActivity)
“`

## Google Map SDKからデリゲートを通してPlaceIDを取得する

“`
override fun onPoiClick(landmark: PointOfInterest?) {
var placeIdLandMark = landmark!!.placeId
“`

## PlaceIDを使ってplac

元記事を表示

加速度センサのサンプリング周波数を調整できるAndroidアプリを作った話

#概要
私事ですがサクジツ,3軸加速度センサの値がcsvファイルで欲しくなりました.Qiita仲間の皆さんであれば誰しもこのような経験はあると思います

ということでXperiaが手元にあったので,google playから早速検索,加速度センサロガーなるものを片っ端からインストールしてみました

するとなんと!サンプリング周波数が任意に設定できません...

しかしiOSには設定できそうなアプリが存在したので,Androidでも作れるのではないかと健闘した物語です

#まず調査
(注意)この章は作業ログならぬ勉強ログっぽく書いていきますので,日記感覚で見てください

すべてのアプリ(サンプル数6,7個)に共通している点で,サンプリングの間隔を大体でしか調整できませんでした

これについて調査していくと,加速度センサにおいては他の端末センサと違い具体的なサンプリングのレートを調整することができないらしいです
[SensorManagerのリファレンス](https://developer.android.com/reference/android/hardware/SensorMana

元記事を表示

データバックアップ

#データバックアップの実装方法の参考サイト

Androidアプリのデータバックアップは下記の2通りあるらしい。

・Key-Valueバックアップ(Android Backup Service)
・Android自動バックアップ

実装で参考にしたサイトは下記のとおり。

**■公式サイト**
https://developer.android.com/guide/topics/data/backup

**■Key-Valueバックアップ(Android Backup Service)**

Key-Value形式のバックアップ機能詳細


https://www.atmarkit.co.jp/ait/articles/1307/18/news026.html

**■Android自動バックアップ**

Android自動バックアップ(Auto Backup for Apps)詳細

**■FileBackupHelperでSQLiteのデータベースファイルをバックアップする**
https://esmasui.hatenadiary.org/e

元記事を表示

【Android】画面タッチイベントを実装する

# はじめに
私の開発しているアプリ[KUMIWAKE](https://peraichi.com/landing_pages/view/kumiwake)では、フォームの入力画面で任意の場所を**ダブルタップ**すると、一番上のフォームに入力ができるような機能を実装しています。なぜこの機能を実装したかというと、最近のケータイは画面が大きすぎて上のフォームまで指が余裕で届かないからですね。

今回はこのような画面のタッチイベント取得についてまとめてみました。

# タッチイベントの実装
まず、タッチイベントを拾いたい画面のアクティビティの記述です。
`MyGestureListen

元記事を表示

透明度を含むカラーの定義の仕方

よく忘れるので備忘録に

# 透明度のあるカラー定義の仕方

“`
#AARRGGBB
“`

https://developer.android.com/guide/topics/resources/more-resources.html#Color

AA: [アルファチャンネル](https://www.weblio.jp/content/%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB)
RR: 赤の16進数
GG: 緑の16進数
BB: 青の16進数

# アルファチャンネル部分の計算の仕方

ケース: 20%だけ透過したい

## 不透明度(opacity)を計算する

`100 – 20 = 80(%) = 0.8(opacity)`

### アルファチャンネルの範囲に変換
アルファチャンネルの範囲は8bit(0-255)

`255 × 0.8(opacity) = 204`

## 値を16進数に変換

この10進数の値を16進数に変換

元記事を表示

Android に MPAndroidChart を追加する際の注意点

こんばんは。
今作っているアプリにグラフ表示ができるようにしたいなぁと思い、MPAndroidChartを追加しようとした際に少し詰まったので備忘録です。

MPAndroidChartとはいろんなグラフを簡単に表示することができるライブラリです。
ヌルヌル動きます。すごいです。
[MPAndroidChart](https://github.com/PhilJay/MPAndroidChart)

##何に詰まったのか

[こちら](https://github.com/PhilJay/MPAndroidChart#gradle-setup)をみて、プロジェクトモジュールに maven の依存関係を追加しようとした際に詰まりました。

まずは間違い

“`gradle
buildscript {
ext.kotlin_version = ‘1.3.71’
repositories {
google()
jcenter()
maven { url ‘https://jitpack.io’ } // 間違い
}

元記事を表示

Gradle における api, implementation, compileOnly の モジュール依存関係 の 違い

# Gradle dependencies の話
表でざっくりと説明

## このような依存関係があったとして、

“`
app
|-> api project(“:module-a”)
| |-> api project(“:module-a-a”)
| |-> implementation project(“:module-a-i”)
| |-> compileOnly project(“:module-a-c”)
|-> implementation project(“:module-i”)
|-> api project(“:module-i-a”)
|-> implementation project(“:module-i-i”)
|-> compileOnly project(“:module-i-c”)

“`

### appモジュールからの実行と可視性はこのようになる。

| モジュール | 実行[^1] | 直接参照できるか[^2] |
|—|—|—|
| module-a

元記事を表示

Androidのシステム設定を取得する、設定画面を開く

# はじめに

アプリで独自に用意している設定のうち、システム設定(設定アプリ上の設定)に依存するものはアプリ側でシステム設定画面に誘導したいことがあります。

例えば通知に関しては、Android 5からシステム設定でアプリ別に通知を無効化できるようになり、Android 8から優先度(priority)など様々な設定がシステム設定で制御できるようになりました。
そのためアプリ内で通知周りの設定を独自で用意していると、システム設定によっては機能しないことがあります。

このような場合、Intent Actionを用いてシステム設定画面に遷移させることで、ユーザーに設定の確認を促すことができます。

## 注意

基本的に暗黙的Intentで遷移させる手法なので、OSバージョンやメーカーによって目的の画面に遷移できないことがあります。

# システム設定画面に遷移する

例えばアプリ個別のシステム通知設定画面に遷移するには、次のようにIntent Actionに`Settings.ACTION_APP_NOTIFICATION_SETTINGS`を指定し、Extraにパッケージ名を設定

元記事を表示

Androidでルビ(ふりがな)表示を調査してみた

# 概要

Androidでルビ(ふりがな)表示するライブラリのいくつかについて、その特性を調べてみたので内容をまとめてみました。

# 背景

iOSにはCTRubyAnnotationでルビを表示する機能があるそうですが、現状Androidにはアプリ上でルビを表示する機能はありません。WebViewであれば、rubyタグによってルビを表示することはできますが、TextViewのようなView上で表示させるためには、外部のライブラリ等に頼る必要があります。
Androidアプリ開発でルビ対応を行う必要があったのでGitHubを探してみたところ、該当するライブラリがいくつかありました。しかし、どれを選べば良いかよく分からなかったので、それぞれの特性について調べることにしました。

# 対象ライブラリ

以下、GitHu

元記事を表示

既存のAndroid Projectのコピー/リネーム方法

#プロジェクトのコピー
1. **ExistingProject**のコピーを作成
2. コピーしたディレクトリ名称を**NewProject**に変更

#プロジェクトコンポーネントの名前を変更しリファクタリング
**NewProject**内のパッケージやファイルには**ExistingProject**の文字が使用されているので変更する
1. Android Studioを起動
2. **Open an existing Android Studio project**を選択
3. **NewProject**ディレクトリに移動して選択、OKをクリック
4. **Build > Clean Project**を選択し自動生成されたファイルを削除
5. **app > java**フォルダを展開
6. **com.example.android.existingproject**を右クリックし、**Refactor > Rename**を選択。**Warning**ダイアログが表示されるので**Rename package**を選択
7. **Rename**ダイアログが表示される

元記事を表示

【Android】QRコード機能ライブラリのZXingを導入する際につまずいた話

#ZXingを使ってQRコードを読み取る
今回は、AndroidStudioでライブラリを導入する際につまづいた話をしていきます。
実装したかったのは上の見出し通りです。
ちなみに自分はまずAndroidStudioをインストールすることから始めた超初心者なんであったかい目でお願いします…。
今回導入するライブラリはかなり有名なライブラリ**zxing**っていうやつです。
Androidアプリ開発でQRコードの機能を追加するぞってなった時は結構な確率でこのライブラリを使用するのではないか、レベルのやつ。
実際に導入手順を説明しながら自分がつまづいた所を説明していきます。
取りあえず自分の環境を公開!

##環境
AndroidStudioversion : 3.6.2
MinSDK : 26
buildtoolversion : 29.0.3
compileversion : 29
language : Koltin

##実装
状態としては新しくプロジェクトを作成して何も触っていない状態から始めます。
こっちの方がわかりやすいし、いかんせんイラン設定してそのせいでエラーとか嫌で

元記事を表示

今更だがAndroidでダークテーマを試してみる

Android10でダークテーマが使えるようになりましたが、あんまり触ったことがなかったのでやってみました。

# 一旦DayNight Themeを実装してみよう

DayNight Themeを実装すると、デフォルトではダークモードの変更により画面に変化があるみたいです。
レイアウトにはConstraintLayoutとToolBarだけの状態にしました。

| 基本 | ダークモード |
|:—————-:|:——————:|
|001_1.png|001_1.pngFlutter環境構築 – 3(Android Studio・Androidエミュレータセットアップ編)

#はじめに
今回はFlutter環境構築第3弾 「**Android Studio・Androidエミュレータセットアップ編**」です!
Flutter SDKのインストール・Flutterコマンドのセットアップがお済みでない方は、
先に「Flutter SDKインストール編」をご覧ください。

**Flutter環境構築シリーズ**
・[Flutter環境構築 – 1(Flutter SDKインストール編)](https://qiita.com/naru_chan__/items/359fcdfb8aa092e9a44e)
・[Flutter環境構築 – 2(Xcode・iOSシミュレーターセットアップ編)](https://qiita.com/naru_chan__/items/d64455cb7d0e7dd223a5)

#「Android Studio・Androidエミュレータセットアップ編」でやること
本編では以下の項目を行います。

– Android Studioのインストール
– Android Studioのセットアップ
– サンプルのFlutterアプリを実行

元記事を表示

眺めて覚える C# Xamarin (5) 音声認識

# Androidの音声認識をプログラムしちゃおう!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/0909b41e-7cd7-7d53-1153-6ef4aa860a53.png)
###新しいプロジェクトを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/c921ca52-b0b8-48f0-be01-89c855ec7933.png)
# モバイルアプリ(Xamarin forms)を選択 次へ
### Android アプリでもできるけど例題がほとんどないモバイルアプリで作るね!
####モバイルアプリのほうが何となくシンプルだから!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274715/028f9dd9-bb9a-ed4b-c6de-583399

元記事を表示

OTHERカテゴリの最新記事