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

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

Androidの充電不良が起きた時の対処法

#始めに……

まず、断らなければいけない事があります…
***そうです、qiitaの規約に多分アウトであることです。***
それでも、一応カテ枠の中には収まっていると思うので、よろしくお願いします。

#Androidの充電不良
自分のケータイは、Xperia_XZ1なのですが、今しがた充電不良が発生しました。
皆さん、誰でも長い間ケータイ使われてると、

* ガサツに扱っていた為、基板がズレる

* 経年劣化による不良

のどちらかで、充電口の不良が起きてると思われます。。。
今回は、***前者の方向で不良が起きた方向け***への記事となります。

***※上のリストをトラブルシュートしたい方は、***
***次項目でこの記事が使えるかどうか判断お願いします。***

#充電不良を凌げるかどうか、判断されたい方↓

まず、***充電口を強く抑え***、一瞬でも充電中かどうか判断します。
もしここで、充電中の気が有ったら、こちらの記事は使えるかと思います。
***駄目だったら、直ぐにキャリアにご相談願います(この記事は使えません)***

#本題(凌ぎ方)

「1日だけ、

元記事を表示

【Android】RecyclerView in RecyclerViewの罠【Epoxy】

# はじめに
RecyclerView、便利だよね。
単純なリストだったらサンプル見れば誰でも簡単に実装できるし、Epoxyなんて使った日にはもうめちゃくちゃわかりやすく書けちゃう。

そんなRecyclerViewだけど、こないだRecyclerViewの中にRecyclerViewを入れる実装をした結果、二つの不具合に遭遇した。
多分次やった時も同じ轍を踏みそうな気がするので、忘れないよう備忘録がわりに記事を残しとく。
ちなみにEpoxy使う。

## RecyclerViewのおさらい

簡単に今回関係するところだけかいつまんでおさらい。
そもそも、RecyclerViewはViewのオブジェクトを再利用して表示している。

画面外に出たViewHoldeのオブジェクトは中のデータを入れ替えて再利用される。
これにより

元記事を表示

GitHub Actions でapkファイルを検査する

アプリを開発していると、導入したライブラリの影響等で知らぬ間に意図しないpermission要求が含まれていたり、バイナリのサイズが大きくなってしまうことはよくあります。

> 例えば `com.android.installreferrer:installreferrer:1.0` の追加には、意図しないパーミッション要求が追加されてしまう現象がありました。

master ブランチへのマージを契機に、これらをチェックする GitHub Actions のアクションを書いてみました。Android SDK ツールに含まれる [apkanalyzer](https://developer.android.com/studio/command-line/apkanalyzer?hl=ja) を利用しています。
(ビルド時間が気にならないなら、マージされてしまってからチェックするのではなく、プルリクエスト作成時にチェックした方がよいと思います。)

“`yaml
name: Inspect apk

on:
push:
branches:
– master

en

元記事を表示

マリオカートツアーを毎日自動的に起動してログインボーナスをもらう

#用意するもの
1. Android実機(エミュレータでもいいが動かないかも)
2. adbがインストールされた端末

#準備
1. Android実機にマリオカートツアーをインストールして起動→初期設定まで済ませる
2. Android実機を開発者モードにする
3. adbコマンドで実機に接続しておく(初回に接続を許可するか聞かれるため)

#起動~終了
“`shell
adb connect 192.168.0.xx
adb shell am start -n com.nintendo.zaka/com.nintendo.android.PermissionActivity
sleep 300
adb shell am force-stop com.nintendo.zaka
“`

#懸念事項
1. 起動途中に最新データのダウンロードが入った場合はどうすべきか検討中(Appium使えばいけるか?)

元記事を表示

Xamarinを勉強し始めたので覚えたことを記録するメモ

#はじめに
Xamarinを使ってマルチプラットフォーム開発をやってみたくなったので、勉強したことを記録として残す(徐々に追記)

## Xamarinとは
iOS | Android | Windows など複数のプラットフォームで動作するアプリをC#を使って構築することができるライブラリ

– Xamarin.iOS
– Xamarin.Android

を導入すると、iOSとAndroidのマルチプラットフォーム開発ができる。
例えばVisual Studioに導入すれば、ついでにUWPアプリも作れる。

## Basic Class Library
各プラットフォーム間で共通的に使えるライブラリ。
基本的には、このライブラリを使ってアプリを構築し
個別の対応が必要なものについて、個々のプラットフォームの
ライブラリを使うことで共通化を目指すようだ。

## iOS版のアプリについて
やはりiOS版のアプリについてはMacとXcodeが必要であった。
Mac上のiOSシミュレータは`Xamarin.iOS Build Host`によりペアリングすることで
Windows上のVis

元記事を表示

flutterの環境構築しようとしたらハマった話

最近(2020年2月くらい)、flutterの環境構築でこんな感じでハマった人はいませんか??

“`
Doctor summary (to see all details, run flutter doctor -v):

[!] Android toolchain – develop for Android devices (Android SDK version 29.0.3)
✗ Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.

*他の項目は省略
“`
# Android toolchainのエラーが消えへん

本来であれば、こちらのコマンドで解決するはずなのです

元記事を表示

DroidKaigi 2020 アプリでの学び【Kotlin Coroutines Flow 編】

## この記事なに?
Droidkaigi 2020 アプリに commit したので、そこで得た学びや感想を書いた記事です。
いろいろ書きたいことがあったので、分割して書きます。
僕のモチベが続く限り続きます。
ちなみに初めての OSS 活動でした ?

僕が取り組んだ Pull Request はこの2つになります。

– [Thumbs\-up function ? by mkeeda · Pull Request \#626 · DroidKaigi/conference\-app\-2020](https://github.com/DroidKaigi/conference-app-2020/pull/626)
– セッションへのいいね機能を実装しました
– medium の crap 機能のように連打できる機能です
– [\[iOS\] Fix error if build directory is already exists by mkeeda · Pull Request \#805 · DroidKaigi/conference\-app\-2020](ht

元記事を表示

wrap with new widget が消えた (Flutter / IDE)

Android Studioで電球マークを押しても、Wrap with new widgetが出てこなくなり、Adjust code style settingsしか出てこなくなった時の解決方法

どこにあるかわからず、結構うざかったので、解決した時のURLを貼っておきます。

解決方法
(Mac)Preference → Editor → intentions → Quick assist powered by the Dart Analysis Server..を有効化

https://github.com/flutter/flutter-intellij/issues/2448

![スクリーンショット 2020-03-07 11.36.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/378998/21be4830-a5b7-cea5-67fe-9088273450cc.png)

元記事を表示

Androidアプリでカスタムフォントを使いたい!

#目的
標準フォント以外のフォントを使う

#環境
Android Studio 3.6.1
Build #AI-192.7142.36.36.6241897, built on February 27, 2020
ランタイム・バージョン: 1.8.0_212-release-1586-b04 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 1246M
Cores: 4
Registry: ide.new.welcome.screen.force=true

#カスタムフォント使用の手順
###①カスタムフォントを用意
なんでもいいんですが、SourceHanSerifを使っていきます。
SourceHanSerifとは:https://source.typekit.com/source-han-serif/jp/
直ダウンロードリンク:https://github.com/adobe-fonts/source-ha

元記事を表示

OculusQuestのランタイムロード

# はじめに
OculusQuestでランタイム時に端末からVRMファイルをロードし、動的に生成する方法を記述します。

# 環境など(開発環境、実行環境)
– Unity 2019.2.17f1
– UniVRM 0.55.0
– Oculus Integration 13.0
– AliciaSolid.VRM https://3d.nicovideo.jp/works/td32797

# コード
“`cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRM;

public class LoadFile : MonoBehaviour
{
GameObject VRM;
string AndroidFilePath;
string VRMDirectory = “/VRM/”;
string filename = “AliciaSolid.vrm”;

void Start()
{
And

元記事を表示

Kotlin coroutine入門 ② ~ coroutine scope & jobについて~

[Kotlin coroutine入門①](https://qiita.com/ymkit/items/f0e0b2e8644e83bcace1)の続きです。
前回は、coroutineとは?から仕組み、launch、async、awaitの動きをみました。
今回は、coroutineをandoridで扱う上で知っておきたい coroutine scope & jobについて書いていきます。

# CoroutineScope &CoroutineContextとDispatchersを理解する

### CoroutineContext
CoroutineContextは、要素のセットです。 coroutineの文脈や環境の状態を表す値の集まりで、キーと値のペアとして情報を保持しています。主な要素としてはcoroutineのjobとDispatchersです。

端的に言うと Coroutineを利用するための情報が全て入っている。ここでCoroutineが実行される

### Dispatchers
Dispatcher はコルーチンをどのスレッドで実行するかといったことを決定し

元記事を表示

オレオレ Kotlin Extensionライブラリを作ってみた

### ライブラリ作っちゃった
ここ数ヶ月の間でフルKotlinの新規Androidアプリ開発に携わっており、ktxやExtensionの知見が貯まってきたのでライブラリ作っちゃおっかなーってことでやっちゃいました!

[CommonKtx](https://github.com/sasa-nori/CommonKtx)

まぁ、名前に関してはツッコミは不要ですw

### どんな内容なの?
よくある実装をExtensionで実装してます!

例えば、こんな感じでダブルクリック禁止のクリックリスナーをセットできたり

“`Kotlin:MainActivity.kt
button.setOnSingleClickListener {
// run
}
“`

こんな感じにSharePreferencesの値を扱えたり
_※委譲プロパティでゴニョってるよ!_

“`Kotlin:MainActivity.kt
val pref = Preferences(this)
val isFirstLaunch:Boolean = pref.isFirstLaunch
“`

こん

元記事を表示

JINS MEMEを使えるようになるまでの道のり(Android版)

Android初心者がJINS MEMEのデータを取得できるようになるまでの道のりを簡単にメモしておきます。

# 参考にしたところ
とりあえず以下を参考にしています。
– [JINS MEME SDKへようこそ](https://jins-meme.github.io/sdkdoc/)
– [YAZ Engineer BLOG](https://www.yaz.co.jp/tec-blog/スマートデバイス/496)

# 環境
開発環境は以下でした。
– JINS MEME SDK: 1.3.0
– Android Studio: 3.6

# 前置き
– SDKをダウンロードする
とりあえず、SDKをダウンロードしておくこと。
– アプリを登録する
[JINS MEME DEVELOPERS](https://developers.jins.com/ja/login/?goto=/apps/)にログインして、アプリを登録しておくこと。
登録したアプリのIDとSecretをどこかに記録しておく(あとで使います)。

# ライブラリの準備
– Android Stud

元記事を表示

Androidで道案内アプリケーションを作る

AndroidアプリでGPSを扱い始めると誰しも一度はGoogleMapに代表されるような地図アプリケーションを作りたいと思うのではないかと思います。
しかしGoogleが提供するGoogle Maps API(無償版)には利用目的やAPI呼び出し回数の制限があります。
今回は、Google Maps APIを使用せずにAndroid上で動作する地図アプリケーションを作成します。

# 動作検証環境
Aquos R3
API Level 26

#地図データの取得
地図データには[OpenStreetMap](https://openstreetmap.jp/)というオープンソースの地図プロジェクトのものを使用します。
OpenStreetMapの地図データをAndroidで使用するために、osmdroidというライブラリを使用します。

まずプロジェクトを作成したら、ルート直下のbuild.gradleに以下の一文を追加します。

“`build.gradle
repositories {
jcenter()
mavenCentral() //追記
}
“`

元記事を表示

いつの間にかメーラーを起動するIntentの推奨形式が変わっていて件名や本文が入力されなくなっていたので対応した

## 発覚の経緯
普段作っている個人アプリでは、ユーザーからのお問い合わせを送ってもらうためにメールを使っています。

機能としてはただメーラーを開くだけでなく、件名や本文に任意の内容を自動で入力するようにすることで基本的な情報の問診の手間を省いていました。

3年位は問題なくお問い合わせメールが届いていたのですが、ある時から急に件名と本文の入力がないメールが来るようになりました。

最初のうちはユーザーが消してから送ってきたのかなと思っていたのですが、日に日に多くなってくる様子から何か起きていると判断しました。
手元で確認したところ、読みどおりにメールアドレスしか入力されていないメールがGmailで生成されるようになっておりました。

## 修正方法
### before
メールを起動するIntentは随分昔から使っている、インターネットのどこからコピーしてきたかも思い出せないものでした。
このコードでも少なくともいっときまでは問題なく動いていたはずです。

“`kotlin
fun createMailIntent(address: String, subject: String

元記事を表示

画像分類モデルをつくってモバイルで動かしてみた

#はじめに
自作の画像データセットから分類モデルをつくり、iOSやAndroidのカメラを用いてリアルタイムで動かす方法を共有します。

##環境
– google colaboratory(ランタイム:GPU)(TensorFlow 1.15)(Google Chrome)
– Android Studio
– android 8.0(NEXUS6P)
– Xcode
– iOS 13(iPhone8)

#1. 自作データセットの作成とモデルの作成
この記事では[retrain.py](https://github.com/tensorflow/hub/blob/master/examples/image_retraining/retrain.py)を用いて画像分類モデルを作成します[^1]。
[^1]: retrain.pyは[make_image_clas

元記事を表示

Kotlin 1.3.70 + kotlinx.serialization 0.20.0 の変更点に対応する

Kotlin 1.3.70 がリリースされました https://blog.jetbrains.com/kotlin/2020/03/kotlin-1-3-70-released/

kotlinx.serialization を 0.20.0 へアップデートする必要がありますが、いくつかコードの修正が必要になります。

* kotlinx.serialization 0.20.0 の変更点はこちら
* https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md#0200–2020-03-04

# SerialDescriptor の変更

kotlinx.serialization 0.14.0 までは、カスタムシリアライザを実装するときは以下のような形式でした。

“`kotlin
// Klock を使っています
@Serializer(DateTimeTz::class)
class KlockDateTimeTzIso8601Serializer : KSerializer

元記事を表示

リモートMTGなどでスマホの画面を共有する方法(iOS: Zoom、Android: AirMore)

# iOS
[Zoom](https://zoom.us/jp-jp/meetings.html) を利用します。

#### 0. [Zoom](https://zoom.us/jp-jp/meetings.html) を利用できるようにする

[Zoom](https://zoom.us/jp-jp/meetings.html) を利用するためにはサインアップが必要です。
[プランがいくつか](https://zoom.us/pricing)ありますが無料プランでも充分だと思います。

サインアップしたら[コチラのページ](https://zoom.us/download#client_4meeting)から「ミーティング用Zoomクライアント」をダウンロードしインストールします。

インストールが終わったらアプリケーションを起動してミーティングを開始します。(ここらへんの手順は省きます。)

以下ミーティング開始後からスマホを画面共有するまでの手順です。

#### 1. ミーディング画面の「画面を共有」をクリック
iosスクリーンシ</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Android</div>
<div class='tag-cloud-link'>iOS</div>
<div class='tag-cloud-link'>画面共有</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/koichi-ozaki/items/167249657f12275ff3b7'>元記事を表示</a></div>
<h3 id=CUI初心者がAndroidアプリ署名でapksignerを使う

# CUI初心者がAndroidアプリ署名でapksignerを使う
署名方法をJavaのjarsignerからdeveloperガイド記載のapksignerに移行したかった
## 環境
“`MacOSX“`に“`Android Studio“`をインストール済み。
## 方法
apksignerのあるディレクトリにpathを通す。
則ちターミナルにて“`cd /Users/foo/Library/Android/sdk/build-tools/29.0.3“`できるようにする。

1. ターミナルを起動
2. “`find“`コマンドでapksignerの場所を確認
3. “`vim“`コマンドで“`.bash_profile“`を編集
4. “`.bash_profile“`に通したい“`path“`を記述
5. “`esc“`で入力モードを終了し、“`:wq“`で保存
6. “`cd“`で移動を試しpathが通ったか確認

### 1. ターミナルを起動
“`:terminal
foo $
“`

### 2. “`find“

元記事を表示

build.gradle が Project ウィンドウ に表示されない

“`
From the Gradle Tool Window in Android Studio (View > Tool Window > Gradle),
1. Right click on the the project’s Gradle config with (root) next to its name.
2. Click on Ignore Gradle project,
3. and right click again then click on Unignore Gradle project.
“`
Gradle の設定関連ファイル群を再作成すると良いのでした!!

スクリーンショット 2020-03-06 8.58.05.png

  • OTHERカテゴリの最新記事