Android関連のことを調べてみた2022年06月02日

Android関連のことを調べてみた2022年06月02日

Agora.ioを使ったAndroidの音声配信!

こんにちは、AWAでAndroidアプリ開発をしている佐藤です!
このたび、AWAで音声配信機能がリリースされました :tada:

https://www.cyberagent.co.jp/news/detail/id=27670

AWAの音声配信は自前で全て実装しているわけではなく、 [Agora.io](https://www.agora.io/en/) を使って実現しています。
そこで、Agora.ioを使って音声配信機能を実現する上での簡単なサンプルと、いくつかのハマりどころについて記載しようと思います。

# 前置き

– 使用するバージョンは `io.agora.rtc:voice-sdk:3.5.0` です
– 音声配信のみです。動画配信はしていません
– Agora.ioへのユーザ登録は既に済ませているものとします

# 実装する上で

Agoraはとてもサンプルが充実しており、日々アップデートされています。そのため、まずはサンプルを使って出来ることを把握しつつ、アプリに取り込む作業を行っていくと良いと思います。Androidのサンプルは以下にまとまっているので確

元記事を表示

Galaxyのデバイスでspotifyがつかえなくなる問題

Galaxyのスマホ又はタブレットを使おうと考えている方へ。

Galaxyのスマホ又はタブレットではspotifyが正しく動作しません。

Issueについては英語ですが、ここなどを参照してください。
https://community.spotify.com/t5/Ongoing-Issues/Now-Playing-bar-missing-on-Android/idi-p/5364978

タブレット購入の際などの参考になれば幸いです。

元記事を表示

localhostで立ち上げアプリをスマホからアクセスする方法[Android , iPhone]

## 概要
開発中のWebサイトの表示確認を実機で手軽にできる方法を紹介いたします!
Android,iPhoneだと若干勝手が違うので詳しく解説いたします。

## 今回使用した端末
[PC]
Mac Book Pro (Monterey)

[スマホ]
iPhone SE2 (iOS 15)
Galaxy Note 8 (Android 8)

## 前提条件
– PCとスマホが同じWifiに接続されていること
– PC上でローカルアプリが立ち上がっていること

## 手順 [iphone]
### 準備
– 設定アプリを開く
– [Wi-Fi] -> 接続しているWi-Fiの「iアイコン」押下
– HTTPプロキシの「プロシキを構成」 -> 「手動」を押下
– 画像のようにlocalhostで立ち上がっているアプリの情報を入力
※サーバー、ポートの情報は各自の環境のものを入れてください
![IMG_9A37A159AA9C-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2580122/1

元記事を表示

[Kotlin][Android] object と Serializable

## 状況説明

Android アプリ開発をしていて、ちょっと困った状況になりました。
すぐに解決したんですが、こんなことがあるのね、と勉強になったのでこれを書いています。

その「ちょっと困ったこと」は Activity 間であるデータをやり取りしようとしていて起こりました。

### 渡すデータ

Activity 間でデータの受け渡しをするために、次のような sealed class を作成したとします。
(実際のコードとは異なります)

“`kotlin
sealed class Answer : Serializable {
object Yes : Answer()
object No : Answer()
data class Other(val text: String) : Answer()
}
“`

### 呼び出し側

`Answer` クラスは `Serializable` を実装しているので、 Intent の putExtra() に渡せます。
今回は仮に `Yes` を渡すことにします。

“`kotlin
val int

元記事を表示

Codelab から ViewModel と LiveData の Unit テストを学ぶ1

# はじめに
あまりテストを書いたことがないなぁということで休み中に Unit テストの Codelab をやってみました。
実際に手を動かしてみて自分的に学びになった箇所や途中で詰まった箇所をまとめたいと思います。

## Advanced Android in Kotlin 05.1:Testing Basics
https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics?hl=ja#0

以下特に気になったページや詰まった部分を抜粋してます。

### Page6
– `Hamcrest` を導入する場合は[こちら](https://mvnrepository.com/artifact/org.hamcrest/hamcrest-all) を参照する
– 今回は2022/05/29時点で最新の `1.3` を導入
– Hamcrest を使う際に `assertThat` と `Matcher(is)` を使おうとしたらうまく import に引っ掛

元記事を表示

Androidアプリを開発する #4(DBの準備)

# はじめに
今回はDB関連の部分を進めていきます.前回の記事はこちらから

https://qiita.com/sekkenn1102/items/536af9f97edf76694c6e

# DBを触る準備をする
* 今回はroomというライブラリを使用していきます.[公式資料](https://developer.android.com/training/data-storage/room?hl=ja#components)があったので、指示に従い、build.gradleを初期状態からdependenciesに追加して最終的に下記に更新してビルドを走らせます.

“`build.gradle(app)
dependencies {

implementation ‘androidx.core:core-ktx:1.7.0’
implementation ‘androidx.appcompat:appcompat:1.4.1’
implementation ‘com.google.android.material:material:1.4.0’

元記事を表示

【Android】特定のアプリがインストール済みかチェックする【カスタムURLスキーム】

# 実現したいこと

あるアプリにおいて、他の特定のアプリが端末にインストールされているかどうかを判別し、その結果によって処理を変えたい。

例)特定のアプリがインストールされているかを判別し、
– されている場合 → そのアプリを起動
– されていない場合 → Google Play Storeに飛ばしてダウンロードを促す

## 自分の環境
– macOS BigSur 11.6.6
– Android Studio Arctic Fox | 2020.3.1 Patch 4
– Kotlin version 1.4.20

# 前提
**カスタムURLスキーム(Custom URL Scheme)を利用した場合の解説をします。**
そのため、インストール済みかどうかチェックをされる側のアプリがカスタムURLスキームを設定している必要があります。

例)
– YouTubeのURLスキーム → `vnd.youtube`
– Google MapのURLスキーム → `geo`

自分で作成したアプリであれば自由にURLスキームを以下の方法で設定できます。

## Custom U

元記事を表示

Androidのgradle versionを上げたら起動しなくなった

## Gradle versionをポチポチと最新版に変更

### gradle-7.0.2-all.zip -> gradle-7.4.2-bin.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
-> distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip

### gradle:7.0.4 -> gradle:7.2.1
classpath ‘com.android.tools.build:gradle:7.0.4’
-> classpath ‘com.android.tools.build:gradle:7.2.1’

## 上げて動かそうとしたら。。。起動せず。

### Non-fatal Exception: java.lang.RuntimeExceptionMissing type parameter.
“`
Non-fatal Excepti

元記事を表示

コルーチンとチャネル入門#2

※ソース記事は[こちら](https://play.kotlinlang.org/hands-on/Introduction%20to%20Coroutines%20and%20Channels/02_BlockingRequest)
# ブロッキング要求
自分のアカウントの下で要求を実行し、自分のパスワードと提供されたトークンを使う、開発者GitHub APIを使っていく。
GitHubへのHTTPリクエストを行うため、[Retrofit](https://square.github.io/retrofit/)を使っていく。それにより、与えられたオーガニゼーションの配下のリポジトリの一覧と、それぞれのリポジトリのコントリビューターの一覧を要求することができる。
“`Kotlin
interface GitHubService {
@GET(“orgs/{org}/repos?per_page=100”)
fun getOrgReposCall(
@Path(“org”) org: String
): Call>

元記事を表示

FlutterにてAndroid SDKの”Service”で1秒ごとにUIに反映させる方法について考える

# 1.はじめに
僕はFlutterを触るようになって1か月のものです。参考にならない記事を上げるなと思われるかもしれませんが、僕個人の記録として書いている部分の方が大きいのご了承ください。「こうしたら楽に実装できるよ~」とか、「こうした方がいい!」とか教えていただけると幸いです。
### 今回のゴール
AndroidのServiceと言えばバックグラウンドで動作し、ファイルのダウンロードやTimerを動かし定期的にUIに反映させたりなどそうゆう用途で用いられることが多いと思います。(これも素人目なので適切な使い方かどうかは確証がないです)それを踏まえて、今回のゴールは「Timerで1000ms毎にUIに表示している整数をカウントアップさせる」にします。
![Animation2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125465/2c98d743-e564-d8fb-b64d-b4e7e5883f6f.gif)
# 2.方法
とりあえず方法を検討してみます。Flutter初心者なので「そもそも

元記事を表示

MLKitの一次元バーコード読み取り

# MLKitの一次元バーコード読み取り
一次元バーコードを読み取るAndroidアプリで[zxing-android-embedded](https://github.com/journeyapps/zxing-android-embedded)というライブラリを利用していましたが、ベースが旧CameraAPIだったためAndroid11などで動作しない問題があり、代わりにMLKitのバーコードスキャンAPIの利用を検討することにしました。

## ユースケース
作りたいのはバーコードスキャナのイメージなのでバーコードを読み取った後、処理する予定なのでプレビューは停止させます。サンプルコードのようにリアルタイムでバーコードをマークしたままプレビューし続けるようなことはしません。

今回は試しにこのバーコードを読んでみます
IQOSレギュラーのバーコードですw
![20220518_131724.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/351880/5e1e559c-80ce-d19f-929d-

元記事を表示

アプリでGoogleAnalyticsを設定する時の4つの勘所

こんにちは。[virapture株式会社](https://virapture.com)でCEOしながら[ラグナロク株式会社](https://ragna-rock.com)でもCKOとして働いている[もぐめっと](https://mogmet.com)です。

![mogmet.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42234/8ead2db6-3eab-0232-a59d-afd95e0e0beb.jpeg)
最近Apexというゲームにはまってるのですが、何故かいつも使ってないキャラでハンマーというダメージをたくさん与えたという名誉ある称号をとることができました。とても嬉しかったのでつい共有しちゃいました。やってる人いたらよかったら一緒にやりましょう。

本日はGoogleAnalyticsのイベントの適切な飛ばし方について4点共有いたします。
適切にイベントを設定することでGoogleから恩恵を受けやすくなります!
それでは早速解説いたします!

## ユーザ情報を設定する

一番初めに

元記事を表示

【Android】個人的によく使うアノテーションについてのメモ part2

# はじめに
前回の[【Android】個人的によく使うアノテーションについてのメモ](https://qiita.com/Tsubasa12/items/e02458af070748d20cb4)
に引き続き 使用したものを調べたので記事にまとめます

# アノテーション表

※”@”をつけるとアドレス認識になってしまうので省略

|アノテーション|意味|
|:—|:—|
|Module|Provideをまとめたクラス|
|Provide|インスタンスを提供(Provide)するメソッド|
|Component|Moduleをどのクラスで使うかを紐付けるインターフェース|
|AndroidEntryPoint|これが付けられた他の Android クラスに依存関係を提供できるようなる|

# 最後に
part2では Dagger の基本のようなものを残しました
今後も何かの実装のたびに見つけたアノテーションを調べてまとめていこうと思います!

元記事を表示

Android12対応でexported調整後でも怒られてしまう場合の対応方法

# はじめに
Android12対応、やることも多く現状でも対応が進んでいないプロジェクトも多いのではないでしょうか?
今回はAndroid12で対応必須なexportedですが、こちらプロジェクト内のexportedを対応してもビルドエラーになってしまうことがあります。
この原因は主にライブラリが絡んでいるのですが、どのライブラリが問題になっているのか調べる方法があるのでご紹介したいと思います。

# 確認方法
まずマニフェストを開き、エディター下部の以下タブから赤枠のあるMerged Manifestを選択します。
![スクリーンショット 2022-05-29 20.31.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/a232e177-7b10-b4ad-7a9b-04ae100d02a7.png)

選択後、以下スクショのようにライブラリが持つマニフェスト一覧が表示されます。
![スクリーンショット 2022-05-29 20.37.59.png](https://qiita-

元記事を表示

Jetpack Compose 勉強記録その1

今回からJetpack Composeを触っていきたいと思います。
Composeを使用するプロジェクトが増えてきそうなので、学習していこうと思います。

インプットするだけだと、やっただけの勉強になりそうなので、自分なりの勉強した内容を記録として、アウトプットするために、こちらに残していきます。

# 今回の内容

https://developer.android.com/jetpack/compose/tutorial?hl=ja

初回なので、こちらのチュートリアルをやってみようと思います。

# テキストを表示させる

“`MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(text = “Hello world!”)
}
}
“`

setContentブロックでコンポーズのレイアウトを定義

元記事を表示

【Android】TextInputEditTextでAdjustResizeやAdjustPanが効かない

### 問題
MaterialDesignのTextInputLayoutのTextInputEditTextで、テキスト入力時にカーソル位置とフォーカスがおかしくなります。
一行とかであれば恐らく問題ありませんが、ScrollViewなどでネストしている場合文字入力が困難になります。

### 原因
日本語の情報があまり見当たらなかったのですが、[既知のバグ](https://github.com/material-components/material-components-android/issues/1282)として報告されているようで、Manifestで指定するAdjustResizeやAdjustPanが上手く機能していない?みたいです。

### 解決
TextInputEditTextに「app:textInputLayoutFocusedRectEnabled=”false”」を追加する。
(もしくはTextInputEditTextをEditTextにする)

### 参考
[https://stackoverflow.com/questions/62715709/

元記事を表示

初めての .NET MAUI (Androidアプリ編)

# MAUIでWindowsアプリのHallo World!
[前回](https://qiita.com/kashin777/items/eae43a555dc28867926f)、Visual Studio 2022 17.3 (Preview)時点のMAUIで、WindowsアプリのHallo Worldを試しました。

https://qiita.com/kashin777/items/eae43a555dc28867926f

# MAUIでAndroidアプリのHallo World!
今回は、Androidアプリを実行します。

## ビルド対象にAndroidアプリを追加する
前回、Windowsアプリだけを対象にしたので、Androidアプリを追加します。
これで、WindowsアプリとAndroidアプリを同時に開発できます。

.csprojファイルを編集します。
“`XML

OTHERカテゴリの最新記事