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

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

Windows10 adbコマンドを実行できるようにする

# 目的

– Windows10のPCでadbコマンドを実行できるようにする方法をまとめる

# 方法

1. 下記にアクセスする。
– [https://developer.android.com/studio/index.html](https://developer.android.com/studio/index.html)
1. 「DOWNLOAD ANDROID STUDIO」をクリックする。

![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/587d653b-e402-60dc-b1a0-c8dd73e220f0.png)

1. 利用規約に目を通し同意するなら「上記の利用規約を呼んだうえで利用規約に同意します。」にチェックを入れ「ダウンロードする」をクリックする。

![キャプチャ (1).PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/f

元記事を表示

kotlinx-coroutines-testのrunBlockingTestについて

前回に引き続きCoroutinesの単体テストの話です。

[https://iwsksky.hatenablog.com/entry/2020/12/09/014603:title]

今回はrunBlockingTest[1]について取り扱いたいと思います。

⚠理解が曖昧な状態で記述している可能性があります、間違いがあれば訂正お願いします。

## 環境
implementation “org.jetbrains.kotlin:kotlin-stdlib:1.4.20”

testImplementation “org.jetbrains.kotlinx:kotlinx-coroutines-test:1.3.9”

## runBlockingTestとは
kotlinx-coroutines-testに含まれるAPIでrunBlocking同様に現在のスレッドをブロックしてコルーチンを起動することが可能。

“`kotlin
@ExperimentalTime
@Test
fun exampleTest() = runBlocking {
val deferred =

元記事を表示

【Android】Android Studioで使えるショートカット(Windows)

#プログラミング勉強日記
2021年1月17日
基本的なショートカットしか使っていなかったけど、使って便利だと思ったショートカットをまとめる。

#個人的に覚えておきたいショートカット

| 説明 | ショートカットキー |
|:–:|:–:|
| クラス、ファイルなどを全体から検索 | shift +shift |
| タブの移動 | Alt + → / Alt + ← |
| 戻る | Ctrl + Alt + ← |
| 進む | Ctrl + Alt + → |
| 1行削除 | Ctrl + Y |
| アプリをビルドして実行 | shift + F10 |
| 行またはブロックのエラーの修正方法を表示 | Alt + Enter |
| 名前の変更 | shift + F6 |
| プロジェクトのクイック修正 | Alt + Enter |
| 置換 | Ctrl + R |

#参考文献
[キーボード ショートカット](https://developer.android.com/studio/intro/keyboard-shortcuts?hl=ja)

元記事を表示

ViewのonDrawでいくつかアークの円を描く

onDraw()を通じて、いくつかアークの円を一緒に描きましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/906922/b6fabf94-e29c-af54-349b-b3371cd9d2cd.png)
###Viewのサブクラスを作る

“`

class MyPieView(context: Context?, attrs: AttributeSet?):
View(context,attrs){

override fun onDraw(canvas: Canvas?) {
super.onDraw(canvas)
}
}
“`
###Viewを作る時、普段はdpを使います。
KotlinのExtension Functions/Propertiesでpx→dpに切替

“`
val Float.px
get()=TypedValue.applyDimension(
TypedValue.COMPLE

元記事を表示

【Android】【初心者】Custom Viewの作り方

#【Android】【初心者】Custom Viewの作り方

## 概要
オセロのアプリを作ってみようという思いで、オセロの初期状態のレイアウトを独自Viewで、作ってみたので、Custom Viewの作りかたのまとめという感じです。
大した内容ではないです、すみません。
基本的には、Android Developerの[カスタムビュー コンポーネント](https://developer.android.com/guide/topics/ui/custom-components)の項目を参照して作成しました。

## 作成したレイアウト

## 作成手順
大まかな手順としては、以下の3つでした。
1. Viewを継承した独自Viewのクラスを作成
2. XMLから作成したViewを取得できるように、

元記事を表示

Dagger Hiltで @Singleton を使うときの @InstallIn は ApplicationComponent

### 一行で言うと
`@Singleton` は `@InstallIn` が `ApplicationComponent` じゃないと使えません。

### 事象
`@InstallIn` が `ApplicationComponent` の Module で `@Singleton` すると、以下のビルドエラーとなる。
“`
error: [Dagger/IncompatiblyScopedBindings] com.example.XXXApplication_HiltComponents.ActivityC scoped with @dagger.hilt.android.scopes.ActivityScoped may not reference bindings with different scopes: public abstract static class SingletonC implements XXXApplication_GeneratedInjector
“`

[Hilt を使用した依存関係の注入  \|  Android デベロッパー  \

元記事を表示

【自分用メモ】Firestore、前と1個もコード変わってないのになぜかアプリが動かない時

#久々にアプリをビルドすると何故か動かん
前とコード変わってないのに。

Firebase周りで日付が関連する部分はここ。
Firestore > ルールの部分↓

“`
rules_version = ‘2’;
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if
request.time < timestamp.date(2021, 12, 1); } } } ``` `timestamp.date()`の中の日付が過去の日付になっている時、アプリがビルドできなくなります。 #対処法 とりあえず未来の日付に打ち直す。直接いじっていいです。 # おまけ こんなところで躓くこともあるのかぁと思いました。忘れちゃいそうなので一応メモ。 これで上手くいかない場合はSHA1を登録し直すとかしてみよう。

元記事を表示

AlertDialogで自作Layoutを使う(+ DataBindingも)

Dialog + 自作LayoutだとsetPositiveButtonとかできなくて、ボタンをLayoutに準備してfindViewByIdとかするのが面倒…

AlertDialogならsetPositiveButtonとかできるので、自作Layoutファイルを使って、ダイアログの表示部分だけ自作Layoutにしたかったので、調べたものの備忘録的にまとめました。

AlertDialogに自作Layoutを利用するのと、DataBindingも使いたかったので、それも調べてまとめました。DataBinding使わない場合は不必要な箇所はすっ飛ばしてください。

## ■ まず完成形
AlertDialogに自作レイアウトファイル(今回はTextView2つ)を差し込めるようにします。
名前だよ、の方はViewModel経由で取得するようにDataBindingしています。

![Screenshot_1610806707.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503267/beac35c

元記事を表示

[Android/Kotlin]Gitに保存しないデータを扱う

# なんでそんなことするの?
github等でgitを共有する時に、データベース接続用パスワード等はしたくない

# 説明
.gitignoreファイルに記載されているファイルはgitに保存されなくなる
AndroidStudioでプロジェクトを作成すると、自動的に.gitignoreとlocal.propertiesが作成され、
.gitignoreの中にlocal.propertiesも入っているのでそれをそのまま使用する

# 結論
[github](https://github.com/yuki-kamikita/LocalPropertiesSample)
この中にlocal.propertiesは入っていない

# コード
## .gitignore
local.propertiesが入っていることを確認

“`:.gitignore
/local.properties
local.properties
“`

## build.gradle(:app)
ここのやり方はわからなかったら`buildConfigField`でググってください

“`build.gradl

元記事を表示

【Android】CLEARTEXT communication to xxxxxx.com not permittedが出た時

APIをRetrofitを使い取得しようとしたときにエラーになったのでメモ

>CLEARTEXT communication to xxxxxxx.com not permitted by network security policy

http通信が許可されていないことからこのエラーになる。

## Manifestにandroid:usesCleartextTraffic=”true”を足す

“`xml

元記事を表示

モバイルアプリ開発は、Flutter一択なのか?-2021版-

こんにちは! Tetsukick(菊池哲平)です。
2021年1月現在、インドネシア([PT.AQ Business Consulting Indonesia](https://aqi.co.id/))でモバイルアプリ開発の技術顧問をしております。
iOS歴5年、Flutter歴1年半。[個人でもアプリ開発してます。](https://apps.apple.com/ca/developer/teppei-kikuchi/id1504163412)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/268c909b-c9ca-36b7-157d-3b835a2a109f.png)

本記事は、[2020年11月にZennに投稿した記事](https://zenn.dev/tetsukick/articles/c297b6ee1e64397432e5)の改訂版になります。
![image.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

NFCタグで遠隔PC起動_スマホでWake on lan(ラズペリーパイ経由)

#NFCタグで遠隔PC起動_スマホでWake on lan(ラズペリーパイ経由)
##作成背景
 ①NFCタグで何か便利にできることがないか?
 ②デスクトップPCをwifi経由でなくLAN接続に最近変えた

Wake on lan でPCを起動しよう。

##材料
①NFCタグ1枚100円
②NFC対応スマホ(android)
③NFC tools (アプリ)
④ラズベリーパイzero (☆wake on lan アプリでもOK)

##実践
###①デスクトップPCの設定(wake on lan)ができるようにする。
 マジックパケットをLANに流すことで、PCが起動できる。
 *マザーボード上で通電している状態にする、Wakeonlanを利用可能にする必要
 https://www.atmarkit.co.jp/ait/articles/2004/20/news021.html
☆macアドレスを取得しておきます。 ifconig/all

###②ラズベリーパイzeroからマジックパケットを出す
xx:xx:xx:xx:xx:xx ①で調べたMACアドレス

“`
apt-

元記事を表示

【Android】MediaPlayerで音楽を一時停止して途中から再生する方法

#プログラミング勉強日記
2021年1月16日
MediaPlayerで音楽を一時停止して、止めたところから再生する方法を簡単にまとめる。

#MediaPlayerで音楽を再生する方法

“`java:MainActivity.java
mp = MediaPlayer.create(this, R.raw.musicFile); // 音楽ファイルを読み込み
mp.start(); // 再生開始
“`

#MediaPlayerで音楽を一時停止する方法

“`java:MainActivity.java
mp.pause();
“`

#サンプルプログラム
 ポイントはstartする際にMediaPlayerのインスタンスを生成しないこと。そのまえにonResumeの中でインスタンスを生成することで、一時停止してその途中からまた再生することができる。

“`java
public class Sample20120802Activity extends Activity {
MediaPlayer mp = null;
Button[] btn = ne

元記事を表示

Androidアプリの手動公開(管理対象の公開)【2021年1月12日時点】

[こちらの記事](https://qiita.com/white_raichi/items/752d92a0ce518101c0e6)を参考にしてGoogle Pay Consoleで時間指定公開機能で手動でアプリリリースしていたのですが。
いつの間にか時間指定公開が「管理対象の公開」という機能に変わっていたので手順残します。

## Google公式ドキュメント
[管理対象の公開機能を使ってアプリの変更を公開するタイミングを管理する](https://support.google.com/googleplay/android-developer/answer/9859654?hl=ja)
こちらに書いてあるはずなのですが(個人的に)情報過多でいまいちピンとこなかったです。

## 管理対象の公開とは?
以前の「時間指定公開」と同じことができるのですが、どうやら機能改善してるようです。
– 保留中や審査中の変更時でも管理対象の公開オンオフを切り替えることができる
– 時間指定公開オンの設定中で保留中の変更があった場合、承認されないと公開できないが管理対象では審査中の変更があっても承認済

元記事を表示

M1 MacでAndroidエミュレータを動かす

先日[M1 Macを購入](https://qiita.com/honeniq/items/c2350c7920f4735ac106)し、 思ったよりもトラブることなく快適に使っています。

Androidの開発環境を作っていたところ、まだ公式にはエミュレータが使えない状態だったので、何とかできないかと試してみました。

※ この記事内の情報はすべて、執筆時点(2021/01/15)のものです。

## Android Studioを入れたての状態だと

M1 Macはまだサポートされていないので……
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2492/7a5b0484-937e-0db5-d037-215f0cce5054.png)
AVDマネージャを開くと、「Your CPU does not support VT-x.」と警告されます。
(そもそもVT-xが使えることは無さそうですが。)

![image.png](https://qiita-image-store.s3.ap

元記事を表示

Android Viewの表示のさせ方の色々

次の記事を見つけました。こちらを読んだ方がいいかもしれません。<2020/01/16追記>
[2019-12-04 Hello ViewBinding! 歴史から学ぶ明日からViewBindingを使うべき理由](https://engineer.retty.me/entry/2019/12/04/120000)

###前書き
 昨今、AndroidStudio”4.1″になって以来、Google帝国の一枚のお触れ書き「[Kotlin Android Extensions の未来](https://developers-jp.googleblog.com/2020/11/the-future-of-kotlin-android-extensions.html)」により、我々一般庶民の初級アンドロイドプログラマーはViewが表示できず、焦り、慄(おのの)いているのではないでしょうか。
 なぜかと言えば、ViewBingdingが登場したからです。
 Viewの表示のさせ方は、私の知る限り、現在4種類あります。(歴史を紐解けば、或るは近い未来を仰ぎ見れば、他にもあるかもしれません。ご存じ

元記事を表示

【Android】MediaPlayerでURLから再生するときの設定方法

#プログラミング勉強日記
2021年1月15日
[昨日の記事](https://qiita.com/mzmz__02/items/ac195d61e8614c684e67)でMediaPlayerで音楽を再生する方法について簡単に記述したが、URLから再生する場合には、マニフェストの宣言が必要なので、これも記事として残しておく。

#URLから音楽を再生する

“`java:MainActivity.java
String url = “http://……..”;
MediaPlayer mp = new MediaPlayer();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(url);
mp.prepare();
mp.start();
“`

#マニフェストの宣言
 MediaPlayerを使用してネットワークの音楽を再生する場合には、ネットワークアクセスを許可する必要がある。

“`xml:AndroidManifest.xml

元記事を表示

androidレイアウトエラーまとめ

android.support.constraint.Guideline

androidx.constraintlayout.widget.Guideline

元記事を表示

【Android】Kotlinでメニュー機能作成

ペットの年齢を人間の年齢に換算するアプリを作成していて、
onOptionsItemSelected部分の機能を忘れそうだったので、
覚書として記載。
なるべくシンプルな内容になるように心掛けて書いてみた。

全ソース:
https://github.com/CoffCookie/pet_age_conversion

素材提供元
ぱくたそ:
https://www.pakutaso.com/

###画面作成

Menuのxmlファイル作成
resディレクトリで右クリックし、New→Android Resource Fileを選択。
File name:pet_select
Resource type: Menu

を選択し、OKをクリックします。

その後は
app/src/main/res/menu/pet_sele

元記事を表示

ユーザーのPermissionCheckを秒で!

#目的
Androidアプリは、常態として外へのアクセスが制限されているので、何かの機能にアクセスしたいと思った時は、PermissonCheckが必要(日本語で書くと意味合いが違くなりそうで、英語に逃げる)。
そのPermissionCheck(ドヤァ…)のフォーマットを簡単に実装する方法を見つけたので、誰かの役に立つといいなぁというささやかな思いを込めて残しておきます。

#やり方
簡単です。今回は筆者が位置情報取得のために、getFusedLocationProviderClientをインスタンス名fusedLocationClientで実装して、ACCESS_COURSE_LOCATION や ACCESS_FINE_LOCATION の権限許可をユーザーに対して促す必要が出てきました。
![fusedlocation.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/599059/03089f56-715b-1152-3dcc-611bbb5ef258.png)

######赤字になっている箇

元記事を表示

OTHERカテゴリの最新記事