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

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

Bluetooth AudioデバイスからTHETAを操る

## はじめに

リコーの @mShiiina です。

弊社では[RICOH THETA](https://theta360.com/ja/)という全周囲360度撮れるカメラを出しています。
RICOH THETA VRICOH THETA Z1は、OSにAndroidを採用しています。Androidアプリを作る感覚でTHETAをカスタマイズすることもでき、そのカスタマイズ機能を「プラグイン」と呼んでいます(詳細は本記事の末尾を参照)。

2020年6月のFWアップデートにより、プラグインでBluetooth Classicデバイスを使用できるようになりました。

今回は、Bluetoothイヤホン、Bluetoothオーディオを使用してリモート撮影ができるプラグインを作ってみました。動画はこんな感じです。

元記事を表示

Huu プライバシーポリシー

“””,HuuLooのプライバシーポリシーをお読みいただき、ありがとうございます。”””,
“””お客様には、当社を信頼して情報を提供していただいていることにお礼を申し上げます。当社が収集する情報の種類、収集の理由、収集した情報の利用方法、お客様情報に関する選択について理解を深めていただくことがまず重要であると考えます。本ポリシーは、当社のプライバシー対策を、法律用語や専門用語をなるべく控えて、平易な言葉で説明しております。”””,
“””発効日:2020年4月30日”””,
“””1.本プライバシーポリシーの適用範囲”””,
“””2.当社が収集する情報”””,
“””3.情報の使用目的”””,
“””4.情報共有の方法”””,
“””5.越境データ移転”””,
“””6.お客様が有する権利”””,
“””7.お客様の個人情報の保護方法”””,
“””8.当社におけるお客様情報の保有期間”””,
“””9.児童

元記事を表示

NDKでOpenCVを使った画像処理向けAndroidアプリのひな形 (とマルチプラットフォームに向けた設計)

# はじめに
先日、[CameraXとOpenCVを使った画像処理向けAndroidアプリのひな形](https://qiita.com/iwatake2222/items/c0ebe6d84afdef57aab3 )という記事を投稿しました。これは、カメラ入力、画像処理、画面出力のすべてをJavaコードで行いました。
今回は、画像処理をNDK(JNI)側で処理してみます。

これによって、上手く設計すれば様々なプラットフォームで共通のロジックコードを使用することが出来ます。これについては後半で少し触れます。

例えば、↓の動画はディープラーニング処理(Pose NetとSemantic Segmentation (DeepLab)) を行う処理と結果の描画処理をライブラリ化し、Androidアプリ、Windowsアプリ、Linuxアプリ(x64, armv7, aarch64)から呼べるようにしています。

元記事を表示

Flutter(Dart)でValidationを実装する

# バリデーション
“`validation_helper.dart
// 英数のみ、6桁のバリデーション

class Validator {
Validator._();

static bool isValidHoge(String hoge) {
const _hogeRegExpString = r’^[0-9a-zA-Z]{6}$’;
return RegExp(_hogeRegExpString, caseSensitive: true).hasMatch(hoge);
}
}
“`

接頭辞`r`を付することでraw(生)文字列として扱うことができます。(エスケープシーケンス回避のため)

参考記事
1. [form用正規表現判定/備忘](https://qiita.com/fubarworld2/items/9da655df4d6d69750c06)
2. [RegExp constructor](https://api.flutter.dev/flutter/dart-core/RegExp/RegExp.html)

元記事を表示

agora.io RENDERモード (映像表示モード)

# 概要
agora.io の VideoSDK for Native では、[RENDERモード](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1video_1_1_video_canvas.html#a2c5722848cb5a96999f44de58025ae04)という機能により、画面上の映像表示設定をすることができます。
本記事では、Androidを利用して、本機能の利用方法および各モードの映像表示を説明します。

# RENDERモードの利用方法
RENDERモードは、以下のAPIコール時に引数で指定します。

– [setupLocalVideo](https://docs.agora.io/en/Video/API%20Reference/java/classio_1_1agora_1_1rtc_1_1video_1_1_video_canvas.html#a2c5722848cb5a96999f44de58025ae04)
– [setupRemoteVid

元記事を表示

【Kotlin】初心者向け: 画面回転やスリープ後のUIの保持

# はじめに
 今回は画面を回転させたときや本体をスリープさせた後、ビューの一部がその前後で変わってしまう問題について取り組みます。下の簡易的なボタンカウンターアプリでその様子が確認できます。縦画面でカウントアップさせたとき、横に切り替えると数字が0に戻ってしまうのです。
キャプチャ.PNG
キャプチャ2.PNG

#原因
 この問題の原因は、画面の向きを変えるなどの諸動作によって、Activityがライフサイクルを一からやり直す事にあります。

元記事を表示

Ionic & golangでリアルタイム大喜利アプリを作りました

アプリのリリースまでなんとか漕ぎ着けたので、宣伝も兼ねて使ったフレームワークについて紹介します。

### どんなアプリか

写真で一言アプリです。
特徴的なのはリアルタイムで集まった人たちが、お互いに投稿し合ったボケを評価し合う部分です。

マッチングした最大10名が、制限時間内に一つのお題写真に対してボケを投稿します。
投稿はお互いに評価することができ、一定数イイネを集めると一本獲得になります。

こちらからダウンロード可能です。
よかったら遊んでみてください。

android
https://play.google.com/store/apps/details?id=jp.co.popbits.funnyapp

ios
https://apps.apple.com/jp/app/funny-one/id1515018792

## アプリ側

### ionic

アプリのベースはIonic Frameworkで作成しました。

https://ionicframework.com/

ざっくりいうと、
webview + Angular
にネイティブっぽいリッチな見た目

元記事を表示

【Android】EditTextで日本語入力⇔英語入力の相互切替ハンドリングは難しい

## 初めに
すみません、解決策を提示する内容ではないです。

Emailアドレスの入力時は
`inputType:textEmailAddress`
で英字入力モード
テキスト入力時はを初期表示にしたい
`inputType:text`
で日本語入力モードを初期表示にしたい
と格闘し、結論無理と行き着きました。。

**非常に時間を浪費し、悲しみを覚えた**ので、同じような悩みを抱えて嵌り続ける方がもしいたら早めに切り上げるよう共有したくメモします。
いやいや出来るよ!という賢者がいらっしゃったら是非ご教示下さい。。

## 事象
以下のように、
TextInputEditTextにを指定して初期のソフトキーボードを英字入力にしようとしたのですが、
別のEditText等で日本語入力に切り替わると、以降inputType:textEmailAddressの初期表示も日本語入力になってしまいます。

“`java:activity_main.xml

元記事を表示

Splash画面を実装する方法

# はじめに
Splash画面とは、アプリ起動時に最初に表示される画面です。アプリを起動するのに少なからず時間がかかります。その間に差し込む画面です。

Splash画面は、↑のGIFで写っているドロイド君の画面です。
この画面を作成する方法は大きく分けて2つあります。
1つ目は、Activityのテーマを変更する方法
2つ目は、Splash画面ようにActivityを作成する方法です。
今回はそれぞれの長所短所と実装方法についてまとめていきます。

# 1つ目の方法
1つ目は、**Activityのテーマを変更する方法**です。アプリは起動すると、デフォルトでは`windowBackground`の画面が表示されるらしいです。このプレースホルダーをSplash画面に拡張します。

## 実装
`windowBackgroudcolo

元記事を表示

Apps Up 2020: アプリコンテストのご案内

### 革新的なアプリの作成、Huaweiモバイルサービスでアプリを最適化

Apps Up 2020ーHuawei HMSアプリイノベーションコンテストはHuaweiのDigiX Geekフランチャイズの一部です。
DigiX GeekフランチャイズはHMS Coreオープン機能の促進、HMS コアキットの導入と使用による革新的なアプリの作成、170以上の国と地域の6億人のHuaweiデバイスユーザーへのより優れたスマートライフサービスの提供を促す、グローバルプログラムです。
DigiX Geekプラットフォームは、HMSに根ざしたグローバルモバイルエコシステムを革新し構築するために、開発の才能と愛好家の新時代を統合することを目的としています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50470/98a8b1b9-57ed-b0ab-1133-02a382621173.png)
![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

Realmの基本的な使い方まとめ in Kotlin

#1.概要
RealmはSQLiteに代わる軽量、高速データベースでアプリ開発にも利用できます。
そのRealmが7.0.0になりKotlinの正式ドキュメントも公開されました!
せっかくなのでAndroidアプリでの簡単な使い方をまとめます。
7.0.0はbeta版で、安定板は6.0.2になります。お好みでどうぞ!

■URL
【公式】Kotlinドキュメント
https://realm.io/docs/kotlin/latest/
【公式】Javaドキュメント
https://realm.io/docs/java/latest/
自作サンプル(INSERT,SELECT,DELETEしているだけ)
https://github.com/KIRIN3git/RealmTest

#2.事前準備
build.gradleは7.0.0と6.0.2で設定が違います。

“`build.gradle【7.0.0】
buildscript {
repositories {
jcenter()
google()
maven {

元記事を表示

Facebookアプリからのディープリンク【Android編】

# はじめに
**※本記事では通常のwebなどからのディープリンクについては記載を割愛しますm(_ _)m**
[前回の記事](https://qiita.com/190yamashita/items/8fb8336432e854639c77)に続き、今回はAndroidのFacebookアプリからディープリンクについてを記事にしたいと思います。
有料(従量課金)のツールとか使えば楽できるみたいなのですが、今回のミッションはFacebookアプリからだけなのでお金をかけずにとのことでした。
ので自前で実装することになったんですが…かなり苦戦しましたので記事にして残しておきたいと思います。

# 実現方法

どのように実現するか調べたらまず公式の[App Links on Android](https://developers.facebook.com/docs/applinks/android)が見つかりました。
早速導入して試したんですが、全く機能せず…色いろ調べても解決方法が見つけられず…
一旦諦めました(><)

が、ベテラン技術者の方に色々調べてもらいサーバ側にプログラムを仕組

元記事を表示

KotlinでTCP/IP送信

#はじめに
AndroidでTCP/IP通信をしようとするとうまくいかないので、その対応方法の記録です。
2018年ごろに作られているTCP/IPのサンプルがまったく動作しないのでその原因を調査しました。
#サンプル1
MainActivityのボタンクリックイベント内に

“`sample1.kt
var socket : Socket? = null
try {
val socket = Socket(“localhost”, 12345)
val writer : PrintWriter = PrintWriter(socket.getOutputStream(), true)
writer.println(“serial test”)
}
if (socket != null) {
socket.close()
}
“`

と代表的なサンプルを書いて動作させてみましょう。
**コメントの方にすばらし

元記事を表示

Androidエミュレータ(Windows)で使用するシステムイメージを差し替える・/systemの内容を変更する

# はじめに
Android Studioでアプリ開発するにあたり、SDK Managerでエミュレータとシステムイメージを取得して使用していましたが
・自前でAOSPからビルドしたシステムイメージを使う
・エミュレータで/system以下に変更を加える(アプリをpushするなど)
という必要があり、それで行き詰まった部分があるので、解決した方法と合わせて記録しておきます。

## わたしの環境
– Android Studio/エミュレータ動作環境
– Windows 10 Home 64bit
– CPU: Core i7-8700 @ 3.20GHz
– RAM: 16GB
– Android Studio: 3.6.3
– Android Emulator: 30.0.12

– AOSPビルド環境(仮想PC)
– Oracle VM VirtualBox 6.0
– Ubuntu 16.04 LTS
– AOSPソースコード: Android Pie android-9.0.0_r42

# 自前でビルドしたシステムイメージを使いたい
## 困ったこと

元記事を表示

Flutterで画像、カスタムフォントを使用する方法

今回はFlutterアプリで画像とカスタムフォントを使用する方法を記述します。
## プロジェクトに画像とフォントを追加する
1. プロジェクト直下に`assets`フォルダを作成し、その直下に`images`と`fonts`フォルダを作成する。
2. 使用したい画像とフォントを各フォルダに格納する。

スクリーンショット 2020-06-29 4.11.29.png

## `pubspec.yaml`にパスを記述する
Flutterで画像やフォントを使用するには、`pubspec.yaml`にパスを記述する必要があります。

“`pubspec.yaml
flutter:

# The following line ensures that the Material Icons font is
# i

元記事を表示

Dagger Hilt触ってみた

# はじめに
巷で噂のDagger Hiltをようやく触ってみました。[Codelab](https://codelabs.developers.google.com/codelabs/android-dagger-to-hilt/#0)を一通り終わったので、実際に[過去の記事](https://qiita.com/karass/items/883353b80ac84becf44c)でDaggerを使ってDIしたのですがそれをHiltに移行した手順をまとめます。

# Gradle
“`build.gradle
// build.gradle (Project)
ext.hilt_version = ‘2.28-alpha’
dependencies {
classpath “com.google.dagger:hilt-android-gradle-plugin:$hilt_version”
}

“`

“`build.gradle
// build.gradle (App)
// Dagger_hilt

元記事を表示

Androidのウィジェットでできること、できないこと

iOS 14でホーム画面ウィジェットが使えるようになるそうです。Androidでは昔からウィジェットがありましたが、このタイミングでAndroidのウィジェットにももう一度注目が集まりそうな予感がします。しかし、ウィジェットはかなり制約が大きく、何ができて何ができないのかをエンジニア以外に理解してもらうのは難しかったりします。
ここでは、どうやって作るかという話ではなく、Android開発に詳しくない人や非エンジニア向けに、ウィジェットってどういうものなのか、何ができて何ができないのかをざっくり理解していただけるような内容で書いてみようと思います。

## ウィジェットの制約の考え方

あるアプリのウィジェットを表示しているのは、そのアプリ自身ではなく、ホームアプリ等のウィジェットが設置されているアプリです。ウィジェットを提供するアプリは、こういう内容を表示してくださいとお願いすることしかできません。
まずはここを押さえておいてもらえば以降の制約についても理解しやすいかもしれません。

実際に表示しているのは別のアプリなので、ウィジェットが表示されている間、アプリのプロセスは生きている

元記事を表示

リップルカラーの変更方法

# はじめに
Buttonのリップルカラーを変更したいと思ったが、思い通りの色に変更することができなかった。 ここではButton(Material)のリップルカラーの変更方法の手順をまとめます。

# 目標
以下のようなOutlineButtonを作成します。

## Layout
“`xml

元記事を表示

FlutterでWeb,Android,iOSの3プラットフォームから同じコードでS3に写真をアップロードする

##概要
6月にWeb向けのImagePickerが出ていたので、ネイティブアプリとブラウザアプリを同じソースコードでビルドして、どのデバイスでもファイルアップロード出来るのかというのを試しました。
AndroidとiOSに加えてWebでもPickerが同じ処理で使えるようになったのは結構画期的だなと思ってのメモです。内容はクライアント側に重点を置いています。

### 1. パッケージをインポートする。
pubspec.yamlにimage_pickerとimage_picker_for_web、amazon_cognito_identity_dart_2を追加する。
私が試したバージョンは以下です。

“`
image_picker: ^0.6.7
image_picker_for_web: ^0.1.0+1
amazon_cognito_identity_dart_2: ^0.1.14
“`

### 2. 画像取得処理を書く。thenを使用してますが、awaitでも問題ありません。

“`
import ‘package:image_picker/image_picker

元記事を表示

フォークしたリポジトリをライブラリとして取り込む

ケースとしてはあまり多くないとおもいますが、掲題のとおりフォークしたライブラリをプロジェクトに取り込む方法について記載します

経緯としては、以下のYahooのライブラリを改造して使いたかったためです。
https://github.com/yahoojapan/AppFeedback-android

通常なら類似のライブラリを探すのでしょうけど、今回は見当たらなかったためForkすることにしてみました。

1. Forkが完了すると以下な感じにリダイレクトします
https://github.com/harutamasato/AppFeedback-android

2. sdkディレクトリ内でいじりたい箇所をいじって、masterにコミットしていきます。

“`
$ git commit -a -m “Message”
$ git push origin master
“`

3. 使える状態になったらタグをきってPushします。
2020/6/28現在、オリジナルの最新が1.0.5なのでそれ以上のものを設定します。
今回は1.0.6とします。正常にPushされると、以下の

元記事を表示

OTHERカテゴリの最新記事