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

Android関連のことを調べてみた2020年10月17日
目次

termux×AWS IoT でスマホ位置情報をAWSに送信

#はじめに
妻に、「職場を出たらラインしろ」と言われているのですが、正直面倒です。
自分が職場を出たことを自動で通知できないかなと思い、とりあえず位置情報をAWSに送ってみました。

![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287677/f9429f7f-320e-2383-24da-e35578dd9fdb.png)

#環境
スマホ:京セラ(KTV44)
OS:Android 9

##スマホ(termux)側
AndroidにGoogle Playを利用して、termuxをインストールします。
https://play.google.com/store/apps/details?id=com.termux&hl=ja

スマホだとキーボード入力しづらいため、
インストール後に下記コマンドを入力し、ssh用の環境を構築します。

“`shell
$ termux-setup-storage #termuxにandroidストレージの使用を許可する。
$ pkg install o

元記事を表示

androidのアプリリンクで開く時にプロセスが2つ立ち上がったりジャンプ元のアプリ内で開く時の対処法

## はじめに
アプリリンク(iOSでいうところのユニバーサルリンク)を導入すると、リンクを開く時に指定したアプリで開くことができるため、ユーザーに「どのアプリで開くのか」を選択してもらう必要がなくなりUXの向上になります。

しかし、androidではデフォルトの設定だと、アプリリンクを踏んだ時の動きがおかしくなります。
アプリリンクを踏むアプリをA、アプリリンクで開きたいアプリををアプリBとした時の理想の動きとしては

>
– アプリBがバックグラウンドにいる
– アプリAでアプリリンクを踏むとアプリBに遷移する
– アプリBがkill状態
– アプリAでアプリリンクを踏むとアプリBが起動して遷移する

ですが、androidのデフォルトの設定だと

>
– アプリBがバックグラウンドにいる
– アプリAでアプリリンクを踏むとアプリAのなかでアプリBが開いているパターン
– アプリAでアプリリンクを踏むと、アプリBがもう1つ開かれて遷移するパターン
– アプリBがkill状態
– アプリAでアプリリンクを踏むとアプリAのなかでアプリBが開いているパターン

元記事を表示

Termuxを素早く設定

Android/ChromeOSをTerminalとして使えるTermuxですが、いつも設定するのが面倒なので、ここにメモします。

> 【メモ】Termuxの日本語入力は不自由なことが多いので、まずTermux上で環境を構築しておいて、そこに、SSHサーバーを起動します。Chrome拡張のSecure ShellなどからTermuxにアクセスするとかなり良い感じに日本語も使えます。

# Termuxのインストール

まずは、自分で書いた記事をメモ。Termux上でPythonのインストール方法を紹介している。

– [AndroidでもPythonが使いたい – Termuxを始めよう](https://news.mynavi.jp/article/zeropython-59/)

手順は以下の通り

– Google PlayStoreでTermuxとTermux APIをインストール

# 内部ストレージにつなげる

Termuxの“~/“は“/data/data/com.termux/files/home“なので、内部ストレージにつなぐ方法。以下のコマンドを実行。

元記事を表示

雑魚競プロerがアプリ開発がする(1週目)

#1.はじめに
兼ねてから勉強してみたいと思っていたアプリ開発に着手し始めたので、今後の勉強の進捗について軽くまとめておきたいと思います。

#2.自己紹介
1.専門は数学
2.半年前から競プロに取り組む。茶コーダー

#3.ここ半年で学んだ技術
1.競技プログラミングで使うレベルのC++の知識
2.何を勉強すればいいのかわからなくてなんとなくで学んだhtml,css,pythonの知識
3.TCP/IPの基礎知識、Linuxの基礎知識
4.Androidアプリ開発のための基本的な知識。基本的なアプリの作例をみて作成

#4.今週学んだ知識
Kotlinの基本文法を公式のドキュメントを使って学んだ。
競プロのおかげで基本的な文法の流れはわかっていたので、型や繰り返し、Switchなどの知識は頭に入ってき易かったと思う。
流れとしては、基本的な文法をなんとなくドキュメントでさらった後にテキストエディタによって自分用にまとめた。
適宜ローカル開発環境を使って実際に動作しているところを確認した。
以下には今週まとめた分の一部を載せておく。

“`kotlin:matome
/*
Kotli

元記事を表示

Google Play Console の新しいUIでの時間指定公開とリリース手順

Play ConsoleのバージョンアップでUIが変わるので新しいUIでの手順をまとめておきます。
![スクリーンショット 2020-10-16 17.02.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208853/85b7849b-779e-d1a2-b47e-367b38714385.png)

## 時間指定公開
– メニューの「公開の概要」から「管理」 -> 「管理対象の公開をオンにしました」を選択して保存
![スクリーンショット 2020-10-16 16.34.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208853/d531b8d8-3035-2831-ad94-cc8b3ac028f0.png)
![スクリーンショット 2020-10-16 16.35.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2

元記事を表示

AndroidアプリをGooglePlayConsoleで公開を止めている状態で、リリースの上書きができるか確認

前回からの引き続きで、 https://qiita.com/backgroundcolor/items/f1941a6b08eecbe3d0a7

公開を止めている状態で、リリースの上書きができるか確認

1. ver16が公開準備完了状態
![スクリーンショット 2020-10-16 15.08.171.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6568/11072de5-6313-671d-8ce3-cd41ed02c0a1.png)

2. 製品版にて、ver16が公開の準備完了状態となっているが、「新しいリリースを作成」
![スクリーンショット 2020-10-16 15.08.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6568/62796e22-7924-1dd3-d524-ee4a5ab9e947.png)
3.ver17のファイルをアップし、リリースを作成。ver16は含まれないAPKに表示さ

元記事を表示

Android SIP API : REGISTER リクエストの有効期間と再送信

# 概要

## SIP REGISTER リクエストの有効期間

REGISTER リクエストには有効期間 (Expires) を指定することができます。

* http://www.softfront.co.jp/tech/ietfdoc/trans/rfc3261j.txt (Page 56 – 60 を参照)

REGISTER の有効期間に関する動作を簡単にまとめると以下のような感じです。

* クライアントは、REGISTER リクエストの Expires に希望する期間を指定して、送信。
* サーバーは、レスポンスにサーバー自身が希望する期間を指定して、送信。サーバーが指定した期間は、クライアントが希望した値かもしれないし、サーバーが希望する別の値に変更しているかもしれない。
* クライアントは、レスポンスに書かれた期間を過ぎた後(または期間に近づいた際に)、 REGISTER リクエストを再送信することが必要。

## Android SIP API の auto registration 機能

Android SIP API には auto registration

元記事を表示

Associate Android Developer スタディガイド翻訳①

### Associate Android Developer certificate
Google公式のAndroid開発者認定試験があるの、ご存知ですか。
[Google Developers Certification : Associate Android Developer](https://developers.google.com/certification/associate-android-developer)

あんまり普及してないのか、受験した方のブログなんかも少ないですね。

自分は太古の時代にAndroidアプリ開発をしていて、最近また何かやってみようとAndroid Studioをインストールしたものの何がなんだかわからず、とりあえず初心者として基本から勉強しようかと。
試験を受けるかはさておき、Androidの基礎を理解するのによさそうと思ってスタディガイドを読み始めたところです。
ただ漫然と読んでると目が滑るので、ノート取り代わりに翻訳してみることにしました。

※そもそも試験が英語のみでオンライン面接もあるそうなので、英語が全くダメだと取得は難しいと思

元記事を表示

[Delphi] 10.4 移行で TakePhotoFromLibraryAction を使ってると落ちる罠

# 10.4.1

みなさん!Delphi 10.4.1 は楽しんでますか!
Community Edition が出てないから楽しめないって!?
わかる~
早く出してくれることを祈りましょう。

# TakePhotoFromLibraryAction

さて、僕は 10.4.1 を楽しんでいるのですが、**Android** で、ちょっとした問題にぶつかりました。

それは、[TakePhotoFromLibraryAction](http://docwiki.embarcadero.com/Libraries/Sydney/ja/FMX.MediaLibrary.Actions.TTakePhotoFromLibraryAction) を使っていると、10.4 に移行したときにアプリが落ちてしまうという問題です。

TakePhotoFromLibraryAction はデバイスの写真を取ってくるアクションですが、ここで写真を選択して、アプリに戻ると直後に落ちます。

## 対処

10.4.1 で新規に作ったアプリでは落ちないので 10.3.3 から持ってきたファイルで 10.

元記事を表示

[Android]apkへの署名

# キーワード

キーワード|説明
—|—
アプリ署名鍵|apkファイルを端末にインストールする際に必要になる署名をするための鍵。
アップロード鍵|GooglePlayストアに公開する際に必要になる署名をするための鍵。
生成には署名情報(氏名/会社・部署/国・都道府県・市区町村)と、キーエイリアス、キーパスワードを設定する必要あり。
キーストア|アプリ署名鍵 または アップロード鍵を保管しているファイル(.jks or .keystore)。
何らかの鍵を内蔵したキーストアを生成する際にはストアパスワードが必要。

# ざっくり説明

**apkファイルを端末にインストールしたい場合、アプリ署名鍵でビルド時にapkファイルにデジタル署名しておかないといけない。**

## debugビルドする場合
Android SDK ツールで生成された**デバッグ証明書で自動的にデジタル署名してくれる。**
「アプリ署名鍵とか作った覚えないのに・・・」という疑問への回答である。

## releaseビルドする場合
一般には**アプリ署名鍵でのデジタル署名はGooglePlay

元記事を表示

Firebase Crashlytics SDK 導入時にあった Gradle エラー

firebase crashlytics SDK の導入時に以下のようなエラーがありました。

“`
> Task :app:compileDebugKotlin FAILED
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
class com.google.android.gms.location.LocationResult, unresolved supertypes: com.google.android.gms.internal.zzbej

e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:

“`

`com.google.android.gms.

元記事を表示

gradle “Error: Program type already present: “

ライブラリのバージョン更新中に以下のようなエラーが出ました。

“`
Error: Program type already present: android.arch.lifecycle.ViewModel
“`

# エラーについて

このエラーについて、[Android Studio ユーザーガイド : 重複クラスエラーを修正する](https://developer.android.com/studio/build/dependencies#duplicate_classes) に説明があります。

>
“`
Program type already present com.example.MyClass
“`
このエラーは通常、以下のいずれかの状況で発生します。
・バイナリ依存関係に含まれているライブラリが、直接的な依存関係としてアプリにも含まれている場合。たとえば、アプリでライブラリ A とライブラリ B に対する直接的な依存関係が宣言されているものの、すでにライブラリ A のバイナリにライブラリ B が含まれている場合などです。この問題を解決するには、ライブラ

元記事を表示

AndroidのListViewに文字が表示されないとお怒りのあなたへ 続編(もう私は焦らない)==>SimpleAdapterの使い方

#1.きっかけ
 斎藤新三著『Androidアプリ開発の教書(Kotlin版)初版第2刷』のp150の「2行のリストとSimpleAdapter]を写経していた際、ListViewに文字が表示されない(正確には、表示されているが、バックグラウンドと(ほぼ)同色で見えない)事象を発見したので報告します。この事象は先にご紹介した[ArrayAdapterの使い方](https://qiita.com/guijiu/items/bcdf296e7f792a618287)の場合と同様の原因と考えます。
 下の写真は、エミュレータAPIレベル19で動作させた状態です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/fc613f3e-07c3-4670-74f6-d70484faf1e9.png)

#2.対策
対策は本書のリスト7.3のSimpleAdapterの第1引数をapplicationContextからthisに変更します。

“`kotlin
//リスト7.3抜粋
cl

元記事を表示

#7 Kotlin Koans Introduction/Nullable types 解説

#1 はじめに

Kotlin公式リファレンスのKotlin Koans/Nullable typesの解説記事です。

Kotlin Koansを通してKotlinを学習される人の参考になれば幸いです。

ただし、リファレンスを自力で読む力を養いたい方は、
**すぐにこの記事に目を通さないで下さい!**

一度各自で挑戦してから、お目通し頂ければと思います:fist:

#2 null許容型・セーフコール(安全呼び出し)

Kotlinでは変数にnullを代入できない設定になっており、それによってNulllPointerExceptionという例外が発生するのを防いでいます。

どうしても変数にnullを代入したいときは、変数の型名の後ろに **?** を配置します。

nullが代入できる変数のことを**null許容型**の変数と言います。

ただ、null許容型の変数を扱うとNullPointerExceptionが発生してしまう可能性が出てきます。

そこでnull許容型の変数が関数もしくはプロパティを参照するときは、変数名の後に **?** を配置しないといけません。

この

元記事を表示

KotlinでRealmを使って複数のデータベースを保存する

# はじめに
KotlinでRealmを使って複数のデータベースを保存する方法がわからずつらかったのでまとめておきます。
Realmの導入方法や使用方法などは書いていません、他にいい記事がたくさんあるのでそちらを参照してください。

# 1.モデルクラスの作成
今回は例としてTeacherクラスとStudentクラスの2つを作ります。

“`Kotlin:Teacher.kt
package com.example.sandbox01
import io.realm.RealmObject

open class Teacher : RealmObject() {
var name: String = “”
var department: String = “”
}
“`

“`Kotlin:Student.kt
package com.example.sandbox01
import io.realm.RealmObject

open class Student : RealmObject() {
var name: String = “”

元記事を表示

DatePickerをスピナー指定してもカレンダー部分が消えない(Tablet端末のみ?)

# 前提
– エミュレータおよび実機で検証 (API 28以降)
– htmlをWebViewで表示(Chrome for android)
– DatePickerをスピナーのみの表示にしたかった
– 結果的にスピナーのみの表示をあきらめています

# input type=”date”の表示
### まずはデフォルト設定
#### Pixel 3a XLの場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548237/a6b54dde-da17-400d-d47b-36a3d2c69600.png)
#### Nexus 10 の場合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548237/f4558d80-3cf4-dc2e-93a2-c8b7b372ebcb.png)
デフォルト表示だとスマートフォンでもタブレットでも同様の表示

### 次にスピナーのみ表示する設定

元記事を表示

Android: Wifiで開発、デバッグのメモ

– Android Studio 4.0.1
– Windows 10

Androidアプリの開発にて、Android端末と別の機器をUSBで接続して使う仕様でしたので、WiFi経由で実行、デバッグ、ログ出力をしました。

手順だけのメモとなります。

詳細は、参考にさせて頂いたこちらの記事をご参照ください。
[AndroidアプリをWiFi経由でデバッグ](https://qiita.com/fukasawah/items/3f5b24819fac24c6686a)
[[Android]adbコマンドでunauthorizedが表示される](https://blog.integrityworks.co.jp/2015/10/18/android-adb-command-return-unauthorized/)

## Android-PCをUSBケーブルで接続
## [PC] Android Studioは立ち上げておく

## [Android]開発者向けオプションをON, USBデバッグをON

## [PC] AndroidのIPアドレスを調べる

“`powershe

元記事を表示

AndroidのListViewに文字が表示されないとお怒りのあなたへ(<ーー私のこと)==>ArrayAdapterの使い方

#1.きっかけ
 斎藤新三著『Androidアプリ開発の教書(Kotlin版)初版第2刷』のp109の「アクティビティ中のリストデータを生成する、ListViewSample2]を写経していた際、ListViewに文字が表示されない(正確には、表示されているが、バックグラウンドと(ほぼ)同色で見えない)事象を発見したので報告します。この事象はリストデータをstring.xmlに持つやり方では起こりませんでした。また確認した範囲では、エミュレータがAPIレベル24以上のときにはこの事象は起こりませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501068/97e20fa1-0d73-2bb0-521f-1e53a05001fc.png)

 どうでしょう?罫線と罫線の間にうっすらと文字が表示されているのが見えますか?(上の写真はAPIレベル19のもの)

 次の写真はAPIレベル30のものです。本当ならこのように表示されるよう期待していました。
![image.png](htt

元記事を表示

Androidアプリの申請。最初のリリース。「製品版としての公開を開始」ボタン押下でどうなる?

## 即公開 or 審査??
製品版をリリースする時に、必要な情報や、AppBundle or APKを用意すると最終的に以下の画面となります。「製品版としての公開を開始」ボタンを押すと、審査が入るのか、それとも即公開となるのかが気になりました。
実に、2年ぶりくらいのアプリ公開で、審査がApple並になってるとの事、プロモーションやマーケティングなどと並行する場合はタイミングが大事となりますので、実際にどうだったか簡単に載せます。

※リリースのレビュー → 製品版としての公開のようになります

#### 1.リリースのレビューがある画面
|![ad_release01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297965/546ebc17-e45f-8e8e-4a8b-2c753669eaab.png)|
|:–|
リリースのレビューボタンを押下します
#### 2.公開直前の画面となります。
製品版としての公開を開始ボタンがあります

|![ad_release02.png](https

元記事を表示

Termuxの意外と知らない日本語入力方法、特殊キータブの項目を増やす小技

#Termuxで日本語入力をする方法

![Screenshot_20200929-005905_Termux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747802/33f5dad4-5cbe-8ed0-067c-29b334e53093.jpeg)

この方法はキーボードアプリに依存しません。従ってどのキーボードアプリを使っていても日本語入力が可能です。
やり方は簡単。下の特殊キータブの部分を左にスワイプするだけです。
でも意外とこういうの見落としがちですよね。

# 特殊キータブの項目を増やす方法
このように、左右の方向キーなどを追加する方法を紹介します。
![Screenshot_20200929-001020_Termux.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/747802/26eefc40-3018-79be-a1bb-fbfb20797d1d.jpeg)

### 1)テキストエディタをインス

元記事を表示

OTHERカテゴリの最新記事