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

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

AndroidでApp Actionsの音声制御を試してみて、うまく動かなかった話

# 概要

Androidアプリを音声で制御する方法を調べ、[App Actions](https://developers.google.com/assistant/app/overview)のサンプルを実装してみた結果、期待通りの動作をしなかった話です。(ただし、現在対応方法を調査中です。)

# 目標

アプリの特定の機能を音声から制御できるような仕組みを実装することを目標としました。
用途としては、両手が空いてないような状況、具体的には車の運転や、料理をしているような状況で、音声で起動して任意の動作をさせて、作業の補助をさせることを想定したものです。
実装的には、特定の音声(「OK、Google、○○して」みたいな感じ)に反応してパラメータを渡してアプリを起動できれば良い、ぐらいに考えていました。

# Androidのアプリを音声で制御する仕組み

調べたところ、Androidで音声制御をする方法にはいくつかの手法があったので、少し整理してみました。

## Speech Recognizer

[SpeechRecognizer  \|  Android Developer

元記事を表示

AndroidとSesameとNFCで開けゴマ WEBAPI版

#目的
家の鍵を「かざす」だけで鍵を開けたい!

・Sesame
・Sesame Wifiアクセスポイント
https://jp.candyhouse.co

・NFCカード + 電波遮断シート
 玄関のドアは金属性なので、台紙にしないと反応しないので
 (100均に電波遮断シートが売ってることにびっくりした、、、
・Androidスマホ

##方法
1.AndroidでNFCを読み込み→ネット→公開APIで解錠(本記事)
![WEBAPI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602722/ba4880f1-b4b9-1b9e-9461-2d346094c79c.png)
2.AndroidでNFCを読み込み→BLEで解錠([別記事](https://qiita.com/sakujira/items/93998534d8358b387ee9))
![BLE.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6027

元記事を表示

AndroidとSesameとNFCで開けゴマ BLE版

#目的
家の鍵を「かざす」だけで鍵を開けたい!

・Sesame
https://jp.candyhouse.co
・NFCカード + 電波遮断シート
 玄関のドアは金属性なので、台紙にしないと反応しないので
 (100均に電波遮断シートが売ってることにびっくりした、、、
・Androidスマホ

##考え方
色んな開け方を考える
・Felicaを機器かざしてにかざして開ける
  機器の電源が必要になる
・スマホが近くに寄ったら開ける
  1m単位で位置確認が必要
・スマホをノックして開ける
  ノックの定義を正確にするのは難しい

個人的にどれも理想的ではなくて、本当に「かざす」だけにしたい、、、

「解錠・施錠が高速化! おサイフケータイでスマートロックを操る」
https://k-tai.watch.impress.co.jp/docs/column/minna/1240577.html

という方法もありますが、セキュリティの部分で怖い。

「あ、でも、NFCを読んだら、SesameのAPP画面で開ける様にすればOKなのでは?」
「しかし、別アプリから画面を操作はOSがさせてく

元記事を表示

ExpandingBottomSheetをBottomSheetBehaviorでシンプルに実装する

# ExpandingBottomSheetとは
以下のように画面右下に配置されたコンポーネントがタップによって拡大し、別の画面を構成するようなBottomSheetです。
https://material.io/components/sheets-bottom#expanding-bottom-sheet
![Peek 2020-05-10 19-38.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33071/d6440be2-b784-2bd4-1c07-7c388577ace8.gif)

https://github.com/material-components/material-components-android/issues/994 で話されているようにデザインとしては用意されているものの、2020年5月現在、コンポーネントとしては提供されておらず、自前で実装する必要があります。

FlutterのサンプルであるSHRINEでも使われていますが、こちらでもコンポーネントとしては提供さ

元記事を表示

Edge-to-edgeの対応

#はじめに
Android Qから、「ジェスチャーナビゲーション」という新しい操作方法が追加されました。
従来の操作方法は、画面下部にある三つのボタンをタッチしてホーム画面に戻ったり、ひとつ前の画面に戻ったりしていました。
「ジェスチャーナビゲーション」はiOSのようにボタンではなくジェスチャーによって前の画面に戻ったりする操作方法です。

|3ボタンナビゲーション|ジェスチャーナビゲーション|
|:—:|:—:|
|||

このジェスチャーナビゲーションを利用す

元記事を表示

UnityでC++連携をする(2020年度版)

# 概要
サーバー連携をする際に送る認証用データを作ったりしたくて、そういった箇所はリコンパイルが(比較的)難しいC++側で作り込みたいなと思ったのでそのやり方をまとめます。
まずはC++の簡単なファイルを作ってのUnity連携までを記載します。

なお、連携部分は以下を大いに参考にさせていただきました。

Unity iOS/Android共用プラグイン C++ライブラリ作成
https://qiita.com/satotin/items/05fad323de3101f775d5

## 動作環境
* Mac OSX (10.15.4)
* Xcode 11.4.1
* Android Studio 3.5
* Android NDK r17b
* Crypto++ 8.2.0
* Unity 2019.3.13f1

# Unityプロジェクトの作成
とりあえず、サクっとUnityプロジェクトを作成します。こちらは割愛。

## Assetsフォルダ直下に必要なフォルダを作成

以下になるように、Assetsフォルダ内にフォルダを作成していきます。

“`
■ Assets

元記事を表示

【Mac不要】FlutterアプリにFirebase SDKを組み込んでiOSとAndroidに実機配備する手順 – Codemagic編

# はじめに

※この記事は、以下の記事の続編の一つです。

[【Mac不要】開発中のFlutter製アプリをiOSとAndroidに実機配備する手順 – Codemagic編](https://qiita.com/kami_teru/items/c7ed113d0ecdf7e48ff0)

この記事ではその後、FlutterにFirebase SDKを組み込み、iOS, Androidの両端末からFirebaseコンソールに疎通できるまでの手順を説明します。

Firebase SDKの組み込みを終わらせておくと、以下のようなメリットがあります。

* アプリがいつ、どこで、実行されているかの情報がFirebaseコンソールで確認できる。
* Firebase API([FlutterFire](https://firebaseopensource.com/projects/firebaseextended/flutterfire/))との連携コードの組み込みがスムーズに行える。
* 利用者のGoogleアカウントを利用するための実装(例:[Build a Photo Sharin

元記事を表示

GooglePlayでリリースできなくて詰まった件「完全にブロックされた APK」

GooglePlayでアプリのバージョンアップをしようとするとこんな警告が

“`
完全にブロックされた APK

問題:
この APK は、バージョン コードの大きい 1 つ以上の APK で完全にブロックされているため、ユーザーに配信されません。

解決策:
この APK をリリースから削除するか、このリリースに含まれている APK の対象やバージョン コードを確認してください。
“`

https://www.hirohomme.com/2019/06/03/%E5%AE%8C%E5%85%A8%E3%81%AB%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%9Fapk/
によると
> バージョンコードを +2(前回 1 に対して、問題のapkは 3 )にしてしまっていて

とあり、このとき公開中のAPKはバージョン`4`で、更新は`6`だから
たしかにバージョンを2以上増やしているな〜と`5`のAPKに変更しようとしました。

しかし、よく見てみるとすでにアーティファクトライブラリに`5`がある!

元記事を表示

Androidアプリ:画面遷移の仕組みをシンプルコードで解説してみる

前回
[Androidアプリ:イベントとリスナをまとめてみる](https://qiita.com/kkhouse/items/2980cf748c415bb36f48)

の続き。。。

##はじめに

入社三か月のペーペーです。androidアプリ開発勉強中です。お勉強がてらまとめてます。

入門書レベルの知識を自分なりにかみ砕いています。端折っている部分も多々あるのでご注意を。

##今回まとめる範囲

今回は画面遷移についてシンプルコードでまとめます。
・画面遷移の基礎の基礎を知りたい。
・インテントをシンプルに理解したい。
という方向けです。

作成するのはテキストを入力して送信ボタンを押すと、画面遷移後に、入力されたテキストを表示してくれるアプリです。

####今回出てくる言葉たち

– インテント

簡単にいうとアクティビティから別アクティビティに情報を運ぶための入れ物のようなもの。
今回のように画面1のアクティビティにある文字列をインテントという箱に入れておくと、画面2でその箱を呼び出せば画面2でもその文字列を使用できる。

####前回以前の言葉たち

– イ

元記事を表示

Flutter入門サイトを作ってみた件【Flutterで始めるアプリ開発】

みなさん、こんにちは
とあるサラダ?の会社で開発やってます umatoma です。

Flutter入門用のWebサイトを1つ作ってみたので、
それに関しての記事を投稿してみようかなーと思っています。

# 目次
– Flutterで始めるアプリ開発
– なぜ作ったのか
– 今後の予定
– 最後に

# Flutterで始めるアプリ開発

### Flutter入門サイト

作ってみたFlutter入門用のWebサイトがこちら?です。

**Flutterで始めるアプリ開発**
*Flutterを使ったiOS/Android/Webアプリ開発への入門に必要な情報を分かりやすく紹介*
https://www.flutter-study.dev/
![banner.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632977/a3a10e00-baf5-9a1a-2250-134f5f7e7f8d.png)

### 想定しているターゲット層

– アプリを作ってみたいけど、どうやって作るか分からない方

元記事を表示

FirestoreのデータをRecyclerViewで表示する[Java]

Firestoreのデータが更新されるたびにRecyclerViewの表示も更新されるようなことをやりたかったのですが、日本語で書かれた記事が全然なくて苦戦しました。

この記事では[FirebaseUI for Cloud Firestore](https://github.com/firebase/FirebaseUI-Android/tree/master/firestore#using-the-firestorepagingadapter)を参考に**FirestoreRecyclerAdapter**を使ってチャットアプリを作ってみます。

Firestoreでのデータベース作成がまだの人は[Cloud Firestore を使ってみる](https://firebase.google.com/docs/firestore/quickstart?hl=ja)を参照してみてください。

#表示するデータのモデル
チャットアプリをイメージしてください。

“`java:Chat.java
public class Chat {
private String mNa

元記事を表示

【Mac不要】開発中のFlutter製アプリをiOSとAndroidに実機配備する手順 – Codemagic編

# はじめに

Flutterはクロスプラットフォーム対応ですので、作成したアプリはiOS, Android両方にリリースすることができます。ところが、WindowsではiOS向けのビルドができません。Macを持っていない人にはつらい事実ですね。そこで、この記事ではCodemagicというサービスを利用してiOS, Android両方にリリースする手順を紹介します。

## 前提

この記事は、以下に当てはまる人向けの iOS/Android 対応アプリを開発する手順を紹介します。

* 開発機はWindowsだ
* **Macを持っていない**
* Flutterで開発したい
* Apple Developer Programに既に登録している、または年間で約12,000円を支払えるクレジットカードまたはデビットカードを持っていて、支払い後に最大48時間待ってやるのも悪くない。※1

※1: 2020/03/25現在。

## 開発環境の前提

* AndroidStudioがインストールされていること(まだの方は、インストールをお願いします)
* Git for windowsが

元記事を表示

[Ubuntu]Android Studio をインストールしショートカットを作成する

最近、Android アプリケーションの開発環境を Ubuntu (Linux Desktop) に移行を試みています。Android Studio のインストール自体は簡単でうまく行くのですが、ショートカットの作成に手間取ったのでまとめたいと思います。

# インストールする

Android Studio のインストールは簡単で Android Studio をダウンロードし任意の場所に展開するだけです。今回は Android Studio を /opt に展開してインストールします。

1. [Android Studio](https://developer.android.com/studio) をダウンロードする
2. ターミナルを開く
3. ダウンロードしたファイルを tar コマンドで /opt に展開する。

“`
$ cd /opt
$ tar -zxvf ~/Downloads/android-studio-ide-192.6392135-linux.tar.gz /Desktop
“`

[![Image from Gyazo](https://i.gyaz

元記事を表示

[Android]ダブルクォーテーションを画面に表示する

# はじめに
strings.xmlで定義したダブルクォーテーション(二重引用符)したい場合、「`\”`」を使います。
ただ、WPFの文字列リソースだと`%quot;`で表示されるのに…となったため簡単にまとめてみます。

# 比べてみる
`”`を含む文字列をTextViewに指定してみます。
「xmlにべた書きする」「strings.xmlの文字列を指定する」「Activityから文字列を指定する」の3つで比べてみました。

## xmlにべた書きする
“`xml:activity_main.xml

“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245399/8d3eba4a-8f15-7c07-8cfa-6fbc78cb5db4.png)
xmlでべた書きすると、`\`は効かないため特殊文字である`%quot;`と書かなければ

元記事を表示

OpenAPIでお手軽にモックAPIサーバーを動かす

OpenAPIというものを教えてもらったので、ちょっと~~遊んで~~試してみました。

# 目標
APIをOpenAPIで定義し、コードをジェネレートしてAPIのレスポンスが得られる。
なので、使うのは[OpenAPI Specification](https://swagger.io/specification/)と[OpenAPI generator](https://openapi-generator.tech/)になります。

# 環境など

|ツールなど|バージョンなど|
|:–|:–|
| MacbookPro |macOS Mojave 10.14.5|
|Android Studio |3.6.1|
|Java |1.8.0_131|
|Postman|7.19.1|

# OpenAPIでAPIを定義する

## 1.APIの設計

APIの設計をzeroからやったことがないので流儀がよくわからないですが、以下のようなRESTfulAPIを考えます。

とあるログデータ型`LogData`があるとして、データは何かしらのDBに入っていると仮定します。プライマリキー

元記事を表示

【Kotlin初心者】Navigation + BottomNavigationで画面遷移

## やりたいこと

– BottomNavigationをNavigationで作成
– 画面遷移をNavigationで作成

## BottomNavigationをNavigationで作成

– 事前に以下のクラスを用意
– MainActivity.kt
– FirstFragment.kt
– SecondFragment.kt

– BottomNavigationのMenuリソース作成

BottomNavigationに表示するアイコンやタイトルを設定します。

“`xml:bottom_nav_menu.xml

JavaScript から javaを呼び出せた 最初のソース

MainActivity.java

“`
package pro.test.localweb;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

private WebView myWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// webView に関する

元記事を表示

消えたRecylerViewのitemたち

こんにちは。

# はじめに
Androidアプリを作成していたら,
RecyclerViewのアイテムの個数が,自分の思ってた数よりも小さくなってしまう現象が起きたので記事にまとめておこうと思いました。

## 最初の状態
とりあえずRecylerViewで,バナーを100個ならべてみます。

“`kotlin:DebugActivity.kt
class DebugActivity : AppCompatActivity() {
private data class Banner(
val index: String?,
val title: String?
)

private var bannerArrayList: ArrayList = arrayListOf()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.setCon

元記事を表示

FragmentのonCreateView()とonViewCreated()の使い分け

# はじめに
 **Fragment** の **onCreateView(LayoutInflater, ViewGroup, Bundle)** と **onViewCreated(View, Bundle)** の使い分けに関するメモです。

# 結論
 Fragment の onCreateView() と onViewCreated() をどのように使い分けるかについて、まずは結論から。

– androidx の Fragment を使う
[android.app.Fragment](https://developer.android.com/reference/android/app/Fragment) ではなく [androidx.fragment.app.Fragment](https://developer.android.com/reference/androidx/fragment/app/Fragment) を使う。[^1]

– onCreateView() は使わない
[onCreateView(LayoutInflater, ViewGroup,

元記事を表示

AndroidでKoinを使ってDI

Koinは使ったことあるが、Androidプロジェクトに初期導入したことがなかったので、やってみる。

## KOINとは

公式より日本語化して引用
> Kotlin開発者向けの実用的な軽量の依存関係注入フレームワーク。
>
>純粋なKotlinで記述され、機能解決のみを使用します。プロキシなし、コード生成なし、リフレクションなし。

https://start.insert-koin.io

## 導入

まずはbuild.gradleに追加

“`groovy:build.gradle
buildscript {
ext.koin_version = ‘2.1.5’

dependencies {
classpath “org.koin:koin-gradle-plugin:$koin_version”
“`

“`app/build.gradle
// Koin for Kotlin
implementation “org.koin:koin-core:$koin_version”
// Koin fo

元記事を表示

OTHERカテゴリの最新記事