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

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

簡単なレコーダーアプリを作る【Android/Kotlin】

レコーダーアプリを作ってみました。
録音機能だけみたいときはバックエンドの章だけみていただきたいです。

#環境
macOS Big Sur version 11.0.1
Android Studio 4.1.1
kotlin 1.4.10
実機: Pixel 4a (5G)

##参考文献:
・[MediaRecorder の概要](https://developer.android.com/guide/topics/media/mediarecorder?hl=ja)

#レコーダーアプリ

##権限の追加
録音機能を使うには、まず、アプリのマニフェストファイルに権限を追加する必要があるらしいです。

公式によると、
>RECORD_AUDIO はユーザーのプライバシーを危険にさらすおそれがあるため、「危険な」権限とみなされます。Android 6.0(API レベル 23)以降、危険な権限を使用するアプリでは、ランタイムにユーザーの承認を求める必要があります。

とのことなので追加してあげましょう。

“`xml:AndroidManifest.xml

元記事を表示

【Android】MVVMで、Retrofit2 + Kotlin CoroutinesでHttp通信でqiitaの記事検索するやつ作った

# 【Android】MVVMで、Retrofit + Kotlin CoroutinesでHttp通信をやってみた

## 概要
MVVMの勉強のため、Retrofit2とKotlin Coroutinesを使って、Http通信をして、qiitaの記事を検索するアプリを作成しました。

## ゴール
MVVMでのHttp通信の実装に少しでも参考になればと思います。

## 実装する機能 
Qiita APIを使って、記事一覧を取得する。
文字を入力していくと検索する

## 今回作ってみたもの
![画像サイズ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315689/b825aa6a-2dc6-f5e6-10a3-15d465c740a7.png)

## 使用するライブラリ
* AAC
* LiveData
* AndroidViewModel
* Room

* Retrofit2
* Retrofitは、ver2.6以降でcoroutinesに対応したので、2.6以降を使用

元記事を表示

[Android]Material Designを導入したときに初めにつまづいたこと

AndroidにMaterial Designを導入したときに、何度もつまづいたので、メモ。

## 初めての導入

build.gradleに以下を記載します。

“`
implementation ‘com.google.android.material:material:1.3.0-alpha03’
“`

Gradle Syncした後にMaterial Buttonを使ってみます。

“`

“`

## 実行、そしてクラッシュ

このボタンがあるActivityを起動すると、以下のエラーで落ちました。

“`
Error inflating class com.google.android.material.button.MaterialButton
“`

## 解決方法

`res/values/styles.xml` をMateri

元記事を表示

【Android / Java】DataBinding について学んだ

# はじめに
開発案件でDataBindingを使っており、学習したことを記事にする。

今回はDataBindingを使って、データクラスオブジェクトのプロパティの変更を監視してView表示に反映させるまでを学習した。

# 今回作成した学習用アプリ
①と②のテキスト表示を「チェンジ」ボタンを押す毎に動的に行ったりきたり切り替えるというもの
「ドラえもん」⇄「のびた」

①|
—|
|

②|
—|
|

# 実装ファイル
– “build.gradle

元記事を表示

Navigation ComposeでActivityへ遷移させる

Navigation Compose で Activity への遷移をするにはどうすればいいのか調べたのでそれについて書いていこうと思います。
Navigation Compose については[以前記事を書いた](https://qiita.com/Nabe1216/items/f329e981f0da76c1d221)のでそちらをみてください。

⚠️ここでの Navigation Compose のバージョンは 1.0.0-alpha02 を使用しているので、Stable になるまでに破壊的な変更が入る可能性もあります

## Navigation Compose に Activity の定義を追加

“`kotlin
val navController = rememberNavController()
NavHost(navController = navController, startDestination = “home”) {
composable(route = “home”) {
HomeScreen(…)
}
comp

元記事を表示

使用したクーポンコードを指定したエンドポイントにポストバックする

広告の成果計測等のために、使用されたクーポンコード等の情報を含めて計測システムのエンドポイントへポストバックする必要がある際の成果通知の仕方です。

今回はHttpURLConnectionを利用しました。

# security configの設定とmanifestの設定
設定するポストバック先のURLがhttps://〜であればこの設定は不要です。
Android 9(Pie)では暗号化されていない通信はできない、つまりhttp://ではじまるURLへの通信はデフォルトでは不可能です。
※設定するURLがhttps://で始まればこの手順は必要ありません。
## security config設定

app/xmlディレクトリに以下のファイルを作成します。

“`network_security_config.xml



元記事を表示

[Android][iOS]Crashlytics導入メモ

# 1. Androidメモ
## build.gradle(app)への設定の注意
“`
Execution failed for task
‘:app:uploadCrashlyticsMappingFileRelease’.
> Expected file collection to contain exactly one file, however, it contains no files.
“`
とかいうエラーが出た時の原因と対処

**前提**
build.gradleで「minify true」を設定している場合、ビルド時に難読化が適用され、mapping.txtが作成される。
「minify false」の場合、ビルド時に難読化されず、mapping.txtは作成されない。

**原因と対処**
「minify false」かつ「mappingFileUploadEnabled true」を設定すると、ビルド時にmapping.txtが作成されていなくても、FirebaseSDKはmapping.txtをFirebaseにアップロードしようとして、上記のエラーが発

元記事を表示

今更Build Testable Apps for Androidを見て驚いたところメモ

# 概要
去年のIOで少し古い動画なのですが、すごくいい動画なので、見てみてください。
**特に驚いたポイントを太字にしています。**
かなり端折っているのでおかしいなって思ったら動画の方を確認してください。解釈が違いそうっていう所があればコメントか修正リクエストをください :bow:

# テストにおいて、キーとなるアトリビュートはスコープ

スコープは一つのメソッドでテストがアプリケーションのどのぐらいカバーしているのか、または複数の機能、複数の画面にまたがることはできる。
**スコープはテストの他の2つのアトリビュートに影響を与える。**
→ スピード
ミリ秒単位で終わるものもあれば何分もかかるものもある。
→ **Fidelity(忠実さ)**
テストケースのシミュレートが、どのぐらい本当の世界のシナリオに近いか。スコープを広げれば広げるほど、テストのFidelityは上がる。しかし、逆にスピードを遅くする。一つのテストではすべてにおいて一番いいものはできない。

テストのバランスを見るに

元記事を表示

YoutubePlayerSupportFragmentがandroid11でinitializeに失敗するエラー(Service Missing)の対処法

##背景
android11の端末でのみYoutubePlayerSupportFragmentを利用して動画を再生したがinitializeの時にエラー(Service Missing)を返却して再生できなくなった。
コード上でerror表示はあったがビルドは通るしandroid10までの端末では問題なく再生できたので調査を行った。

##対処法
以前投稿した[android11でTextToSpeechが動作しない時の対処法](https://qiita.com/iKimishima/items/466a54bedf6deb87986b)とほぼ同じ方法で動作するようになった。
マニフェストのqueriesに以下のように追加すると動作するようになります。

“`AndroidManifest.xml

  ・・・

   ・・・

元記事を表示

【Flutter】Firebase環境構築(iOS/Android)

##参考文献
– [Flutter アプリに Firebase を追加する](https://firebase.google.com/docs/flutter/setup?hl=ja)
– [cloud_firestore 0.13.6 ](https://pub.dev/packages/cloud_firestore/versions/0.13.6)
– [firebase_core 0.5.2](https://pub.dev/packages/firebase_core/install)
– [64K を超えるメソッドを使用するアプリ向けに multidex を有効化する](https://developer.android.com/studio/build/multidex)
– [【Flutter実践】Firebase環境構築と、Firestoreのデータを取得してアプリで表示](https://www.youtube.com/watch?v=IiEsyHiIwxc)

#iOS編

###1. Firebaseプロジェクト作成
[![Image from Gy

元記事を表示

ADBでよく使うコマンド一覧

## はじめに

ADBでよく使うコマンドを紹介します。

## 「ADB」とは?

「Android Debug Bridge」の略で、Android端末とやりとりするための多用途なコマンドです。
アプリのインストールやアンインストール、クラッシュログの出力など、さまざまな操作が行えます。

## 環境

– Android Studio:4.0
– adb:1.0.41

## ADBのパスを通す

ADBを使うには、Android Studioをインストールし、パスを通す必要があります。

以下の記事をご参考に行ってください。
[Android SDK Platform-Toolsのパスを通す方法 – Qiita](https://qiita.com/uhooi/items/a3dcc15f7e15ae11d1d6)

## ADBでよく使うコマンド

### グローバルオプション

|オプション|説明|
|:–|:–|
|`-s {シリアル}`|対象シリアルの端末を使う|

`-s` オプションを使うと、対象にしたい端末を確実に指定できます。
後述する `adb devic

元記事を表示

[Unity + Android + Windows] Android SDK 29を入れようとしたらsdkmanagerに怒られた

2020年11月2日からAndroidアプリのアップデートをする際に**targetSDKバージョン29以上が必須**になったらしい

# sdkmanagerでAndroid SDK 29を入れてみる

この記事を参考にAndroid SDK 29を入れようとしてみた

Unityで Android API level 29 のビルド

しかし、sdkmanagerさんに以下のエラーで怒られます

“`
C:\Program Files\Unity\Hub\Editor\2019.4.10f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin>sdkmanager.bat “platforms;android-29”
Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/annota

元記事を表示

【Android】NavigationViewを使わないで、スライドするメニューをつくる

スライドするメニューは`DialogFragment`で作成しました。
Activityの上に、DialogFragmentが被さるイメージです。

# アニメーションの作成
## 左から右へスライドするアニメーション(res/anim/slide_in.xml)

“`xml



“`

## 右から左へスライドするアニメーショ

元記事を表示

MacでAndroidをビルドする際に参考にしたサイト

macでunityをビルドしてAndroid実機でテストする方法
https://note.com/pes88/n/n2141cffd2f8f

UnityでAndroidにビルドする(Mac)

Unity2018インストールからAndroidビルドするまでの手順
https://qiita.com/taroyan/items/2ff7f6aadd640221bde5
※このサイトが一番参考になった

Android Studioは結局使ってない。どこかで使うシーンが出てくるんだろうが、テスト用にAndroidのスマホにビルドしたアプリを入れるだけなら必要なかったので、案外楽チンだった

元記事を表示

docomo らくらくホン F-02J 物理ボタンのキーコード一覧

# 前書き
## 環境
|データ|値|
|:–|:–|
|メーカー|Fujitsu (docomo)|
|機種|F-02J|
|Androidバージョン|5.1.1|
|ビルド番号|V28R066A|

## 調べ方
Android API の`onKeyDown`メソッド引数`keyCode`を参照

# 実測値
## ダイヤルパッド
|表示キー|キーコード|
|:–|:–|
|1|8|
|2|9|
|3|10|
|4|11|
|5|12|
|6|13|
|7|14|
|8|15|
|9|16|
|*|17|
|0|7|
|#|18|

## ワンタッチダイアル
|表示キー|キーコード|備考|
|:–|:–|:–|
|1|96|外部アプリケーションのポインタ切り替えにも利用(無効化不可)|
|2|97|
|3|98|

## 方向・サブメニューキー
|表示キー|キーコード|備考|
|:–|:–|:–|
|↑|19|
|↓|20|
|←|21|
|→|22|
|決定|23|
|メニュー|131|Androidの機能に割り当てられている可能性あり(詳細不明)|
|電話

元記事を表示

【Lv1】イベントとリスナ【Android/Kotlin】

#環境
macOS Catalina version10.15.7
Android Studio 4.1.1
kotlin 1.4.10
実機: Pixel 4a (5G)

####コード
https://github.com/Ru-1218/CheckEnvironmentalProperty/blob/main/app/src/main/java/com/example/ru_1218/checkenvironmentalproperty/MainActivity.kt

##参考文献:
・基礎&応用力をしっかり育成!Androidアプリ開発の教科書 Kotlin対応 なんちゃって開発者にならないための実践ハンズオン
WINGSプロジェクト 齊藤 新三著 山田 祥寛 (監修)

#イベントとリスナって?

| 用語| 意味|
|:———–|————:|
| イベント |ユーザー画面から受け取る何らかの操作のこと |
| イベントハンドラ | イベントを受け取って行う処理のこと |
| リスナ | イベント

元記事を表示

無料VPNアプリのすゝめ

#1.はじめに
今回は端的に無料VPNアプリについて書きたいと思います。
VPNには様々な以下のような用途があります。
・国を偽装したいとき
別に悪い意味ではなく、国によって見れるコンテンツが制限されているのを見れるようにするための偽装
・ネットワーク監視、制限から逃れたいとき
家庭、職場によって、ネットワーク監視、制限がついていたり、中国やロシアなどは国自体でネットワーク監視、制限がついているため、それから逃れるため。
・フリーWiFiなど安全が保証されないところでのプライバシー保護
これは二番目にあげたこととほぼ同じですが、フリーWiFiは第三者に監視される可能性があるため。

これ以外にも用途があるとは思いますが、メジャーなパッと思いつく用途はこんな感じです。
PCでは筑波大学がやっている無料VPNがあるため、それが一番に来ると思うのですが、スマホでは色々なVPNがあるため、どれが一番いいVPNアプリかを知りたかったので、今回は15種類ほどのアプリを速度、金額の観点から検証したので、そこで一番良かったアプリを紹介します。
#2.Proxy Master
僕が一番良いと思うアプリは

元記事を表示

WorkManager

# 1. WorkManagerとは?
紹介する内容は**[Andorid Jetpack](https://developer.android.com/jetpack/)**というライブラリーのバックグラウンドを担当する**WorkManager**です。

**WorkManager**を初お題にした理由はちょうど苦戦中で記録として残しておきたいからです。**WorkManaager**についてはGoogleが提供している[サンプル](https://github.com/googlecodelabs/android-workmanager)と[CodeLab]([サンプル](https://github.com/googlecodelabs/android-workmanager))を参考にしてください。

作成中ではWorkManagerのバージョンは`1.0.0-alpha05`で、まだアルファバーションなのでAPIや内部動作は今後変わる可能性があるかもしれません。

WorkManagerは既存にBackground作業のために使っていたライブラリーを端末のAPIレベルや環

元記事を表示

[Android][NDK]ndk-buildについて

業務で調べたことを自分自身の理解を含めるために文書にする。

AndroidのNDKでビルドする主な方法は以下の3つ。

  • ndk-build
  • CMake
  • スタンドアロン・ツールチェーン

今主流なのはCMakeだが、取り組んでいる業務で使用するのがndk-buildなため、ndk-buildについてまとめる。

ndk-buildスクリプトは、GNU Makeを利用したビルドシステムだ。ndk-buildスクリプトは、以下のコマンドを実行することと同等。

$ make -f /path/to/NDK/build/core/build-local.mk <パラメータ>

ndk-buildスクリプトは、以下のように呼び出す。

$ cd /path/to/project
$ /path/to/NDK/ndk-build

Android.mk

元記事を表示

Android カスタムView

Android カスタムViewを作成する際は、下記コンストラクタを記述すること
AttributeSet attrsが必要

“`
MyView.java

public class MyView extends View {
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onDraw(Canvas canvas) {

}
}
“`

“`
activity_main.xml


  • OTHERカテゴリの最新記事