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

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

Androidで現在地情報を偽装する

# はじめに
位置情報を扱うアプリを実装していると現在地情報を特定の場所に変更したいことがあったりします。これまではPlayストアにある現在地偽装アプリをインストールして利用していましたが、異なる開発機で毎回Googleログインをしてインストールするのが手間だったのでアプリ内で実装しました。

## 注意
今回紹介する現在地情報偽装をした状態でポケGOやDQウォークをすると**BAN対象**になる可能性があります。当方では責任を負いませんのでご了承ください。

# 現在地情報偽装機能の実装
## 権限
位置情報を偽装するためには専用のパーミッションが必要となります。

“` xml:AndroidManifest.xml





“`

元記事を表示

Google Play ConsoleでのANRの調査

`Google Play Console`では、アプリのクラッシュやANRの発生ログを確認することができます。
ANRは、クラッシュに比べると発生原因や再現手順を比較的追いにくい場合が多いです。

私も、最初はANRのログをどう追えばいいかわからなくて苦労したので、`Google Play Console`でのANRの調査についてまとめました。

#ANRの基本的な知識
念のため、はじめにANRの基本についても書いておきました。
基本的な内容なので、読み飛ばしていただいでも結構です。

#ANRとは
ANRは、`Application Not Responding`の略です。
その名の通り、アプリが応答していないことをユーザーに伝えるための仕組みです。

ANRが発生すると、「アプリケーション応答なし」のダイアログが表示されます。
「ボタンをタップしたらフリーズした…:fearful:」といったときに、表示されるダイアログがANRのダイアログです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

アンドロイドで線形回帰モデルを使って推論してみる[PyTorch Mobile]

#今回やること
python で線形回帰モデルを作ってそのモデルを使ってアンドロイド上で**推論する**。(アンドロイド上で学習させるわけではありません。)

今回のコードはgithubに載せているので適宜参照してください。(最下部にURL掲載)

今回作るやつ↓

・**PyTorch Mobile**を使う

> pytorch-mobile.png

#モデルの作成
まずはアンドロイドで動かすための線形モデルを作っていく。
python環境がな

元記事を表示

初心者の初心者による初心者のためのAndroidアプリ開発

#はじめに

最近はコロナウイルスのおかげで勉強がはかどっています笑 2回の投稿を終えてAndroidアプリ開発もそれなりに進んだ内容となってきました。そして、今回は既存のウェブサイトと連携したアプリを作成していきたいと思います。Androidアプリの方で都市を選択すると対応した現在の天気情報を取得して表示するという形式のものです。実用性のあるものなので頑張っていきましょう。

#AsyncTaskの作成
今回のアプリの初期状態では、次の画像のように都市のリストが上半分に表示され、下半分にウェブサイトから天気情報を取得して表示するようになっています。

文字列情報の追加とレイアウトファイルの編集は前回までの学習内容でできると思いますので頑張ってみてください。

res/values/strings.xml

~~~

元記事を表示

ViewModelProviderクラスを定義せずにViewModelを生成する

## はじめに
つい最近ViewModelを触り始めたのですが、当初は律儀にViewModelProvider(s)を使っていました。
しかし、fragment-ktxを使うことでかなり簡素にViewModelを生成出来たので自分用に纏めておきます。

## 実装

jvmTargetを1.8に指定し、`lifecycle-viewmodel-ktx`と`fragment-ktx`を追加する。

“`gradle:build.gradle

android {
kotlinOptions {
jvmTarget = ‘1.8’
}
}

dependencies {
implementation “androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0”
implementation “androidx.fragment:fragment-ktx:1.2.3”
}

“`

### 引数なしの場合
まずは引数なしのViewModelから。
とりあえず引数なしのViewModelを定義する。
i

元記事を表示

【HelloAR】Unity 2019でARCore SDK for Unity v1.16.0 を実装する

# はじめに
久々にARを実装してみようと思いました。[Google公式 Quickstart for Android](https://developers.google.com/ar/develop/unity/quickstart-android)を見れば簡単に作れますね。

環境

– Unity 2019.3.7f1
– ARCore SDK for Unity v1.16.0
– Google Pixel 3a

# Unityの環境を確認し、必要なパッケージをダウンロードする

モジュールはUnity Hubからダウンロードする
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/556110/18376c87-92e8-0680-901a-e8341dc6f89c.png)

Unity 2019を使う場合は`Multiplayer HLAPI`と`XR Legacy Input Helper`のパッケージが必要なのでダウウンロードしましょう。

`Window`→`Package Mana

元記事を表示

Activity内に定義したAsyncTaskのネストクラスに警告「This ‘AsyncTask’ class should be static or leaks might occur」

この記事は、
「[非staticネストクラスが握っちゃう、エンクロージングオブジェクトの暗黙的参照](https://qiita.com/wakwak/items/21da22045c2d084fdd33#comment-21887e3165e8d82845a9)」と題した投稿の続きです。
ですので、先にそっちをご覧いただければ幸いです。
そっちの記事は、頭ごなし的に言っちゃえば、「ネストクラスには、`static`修飾子を付けろ」です。

# いきなりカウントアップしだすアプリを作ってみた、ら…

起動したとたんに、勝手に1秒刻みでカウントアップが始まります。
START!から始まったら「9」まで数え上げたらお終いです。
(このアニメーションGIFは、3まで至ったらまたSTART!を繰り返しているアニメーションですが、このQiitaに貼り付けたアニメーションGIFを止めるすべがないのでごめんなさい)

![countup.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100612/cd7b052b

元記事を表示

Theme.AppCompat.Light.NoActionBar を使っているアプリの Toolbar のテキスト、アイコンの色を白くする。

こんばんは。普段業務と個人で Android をゴリゴリ書いています。
今回、Toolbar の icon を白くしようとして少しハマったのでその備忘録です。
かなり限定的な場面で使用するので需要はそんなにないかと思いますが、同じ場面ではまった方の力になれば幸いです。

## アプリの設定

“`xml:AndroidManifest.xml

元記事を表示

消せないAndroidアプリをadbを使って強制アンインストール

## 前提

adbコマンドを実行できることが前提です。

また、開発者モードをOnにして、USBデバッグモードでPCに接続してください。

## スマホに接続する

`adb shell`を実行して、スマホに接続します。

## 削除したいアプリのpackage名を調べる

`am monitor`を実行する。

`am monitor`は、起動するアプリをリアルタイムで把握するコマンドです。

`HWPOT-H`はスマホの機種によって変わると思います。

“`bash
HWPOT-H:/ $ am monitor
Monitoring activity manager… available commands:
(q)uit: finish monitoring
“`

`am monitor` を実行した後、アンインストールしたいアプリを起動することで、下のようになります。

“`bash
HWPOT-H:/ $ am monitor
Monitoring activity manager… available commands:
(q)uit: finish m

元記事を表示

【Flutter】バグ解決: Bad state: Stream has already been listened to.

## 今回の件のGitHubはこちら
https://github.com/Tetsukick/flutter_BLoc/commit/76748e912be5896f8e998a5a50244fcb77d659b6

## 現象

StreamControllerを使ってBLoCパターンでstatement管理をしていたが、TabBarViewを追加して、
Tabを切り替えて、再度同じタブに復帰した際に画面の表示が崩れるようになりました。

その際のerrorがこちら。

“`
Bad state: Stream has already been listened to.
“`

## 解決策

`StreamController`ではなく、`BehaviorSubject`を使用することで解消

元のソースコード

“`dart:エラー解消前
import ‘dart:async’;

class CounterBloc {
// input
final _actionController = StreamController();
Sink

元記事を表示

DataBindingを使っているChipをChipGroupに動的に追加/削除する

## 要件
– アプリ全体ではDataBindingを使っているものとする
– Chipの個数は可変であり、動的に増減させることが出来る
– Chipには✕ボタンを表示し、押したら消えるようにする

## 実装
### ライブラリの追加
Chipを使うためのライブラリを追加する。

“`gradle:app/build.gradle

dependencies {
(中略)
implementation ‘com.google.android.material:material:1.1.0’
(中略)
}
“`

### AppThemeの変更
Chipを使う際にAppComponentだとクラッシュするので暫定対応。
本記事では`Theme.MaterialComponents.Light.DarkActionBar`を利用している。

“`styles.xml


OTHERカテゴリの最新記事