2020年5月28日木曜日

GoogleドライブにバックアップしたFLAC形式音楽ファイルを有効活用したい

緊急事態宣言が解除されましたが、まだまだ在宅勤務が続きます。
さすがに、ただパソコンと向き合う日々もしんどいものがあります。
以前使っていたスマートフォン(Xperia Z5 Premium等)のmicroSDカードに入れていたFLACの音楽ファイルを、OSのアップデートや初期化などをする際にバックアップとしてGoogleドライブにアップロードしてありました。
Xperiaのミュージックアプリ自体、Googleドライブに対応してはいるんですけど、なぜかMedia Goで取り込んだflacファイルを音楽データとして認識してくれなかったんですよね。

アプリ単位でGoogleドライブに対応できるなら、Googleドライブにある音楽ファイルデータをそのまま聴けるプレイヤーだってあるだろ??
ということで探してみて、このアプリを使ってみました。

Spiral Player
https://play.google.com/store/apps/details?id=com.spiralplayerx&hl=ja

これがとても良く出来ていて、広告もありません。
2021/10/20追記
いつのまにか広告増えてました。
再生中の曲が後半になってくるとバックグラウンドで次の曲データをDLしてくれ、トラックが変わるまでにDLが終わってるとそのままトラックが変わります。
ローカルにファイルとしてダウンロードすることも可能みたいです。
Google Playミュージックを無料で使うには改めてPCからアップロードしないといけないんですが、Googleドライブからまた移動するのも面倒なんですよね。
なので移動の手間なく、楽曲データファイルを読み込み、再生するときに都度データをダウンロードするのはWiFi環境がある家の中では通信量も気にしなくて良いので気兼ねなく、しかも仕事に差し支えることもなく使えます。
Googleドライブの容量をサブスクリプションで増やしているので、有効的な使い方がやっと見つかった感じです。

これは久々に良いアプリに出会えました。
ドライブは無料でも結構な容量が使えるので、mp3などお持ちの方、PCの容量削減もしながら使ってみてはいかがでしょうか。

2020年5月17日日曜日

Overlayを使ったアプリケーションは難しい

仕事ではUIを持ったアプリの開発と持たないアプリの開発、どちらも同じくらいやってるんですが、持たないアプリの開発がここ数年続いていたのもあって、上手く進んでない感じです。
特にフローティングアプリは開発したことがないので、トライアンドエラーを繰り返すしかない。

在宅勤務のため、会社PCに重きを置いたデスクレイアウトになってしまっているので、この辺りにもやりづらさみたいなものが・・・。
しっかりFSをして、そっから設計していかないとダメですね。そのFSでつまづいてますが・・・。

公開するつもりがないものですが、ある程度見映えもいいものにしたいです。

2020年5月12日火曜日

TYPE_APPLICATION_OVERLAYを利用したアプリの開発を再開してみようと思っている話

SYSTEM_ALERT_WINDOWが必要なオーバーレイできる画面を持ったアプリ。
昔はSwipePadというアプリを使っていました。
ホームアプリだけでなく、SystemUIよりも上位のレイヤーにアプリを表示することで、ショートカット起動などを行えるとても便利なアプリです。
しかし現在ではこのアプリはまともに使えません。
SystemUIより上位のレイヤーへの表示はできなくなり、そのレイヤーへの表示をするためにServiceを使いますが、Serviceの起動は画面を持ったコンポーネントからのみ可能に、TYPE_APPLICATION_OVERLAYでも使用には明示的に有効化する必要があります。
まぁなぜかというと、この機能を悪用して画面を操作不能にすることだってできちゃうからです。
ホーム(ランチャー)アプリもしっかり作らないと操作不能になっちゃいますけど、とにかくユーザーが意図して設定したアプリ以外が画面をAndroidのUIよりも強くできるのは良くない!というものです。

上位レイヤーが下位レイヤーに対してイベントをそのまま通知することも出来るので、SwipePadのような便利なアプリもあるのですが・・・。
あるアプリに対して似たようなことを実現したかったのですけど、2週間くらい格闘して諦めてしまっていました。

ところが、Octopusというアプリがやりたいことをほぼ実現できていることを先日知りました。自分がやろうとしていたことと何が違うのか、これがなんとなくですが想像できたので、アプリ開発の再開を決意しました。
とりあえずはとにかく自分が使えるように。出来るようになったとしても公開するかはもちろん未定です。
ただ、もう一度やってみる価値はあるな、と思い至った次第です。

仕事だけだとAndroidアプリそのものの開発は今はそんなでもないので、気晴らしと勉強にって感じですね。
上手くいくと良いのですが。

2020年5月6日水曜日

Android DeveloperPreviewの公開情報を見てみよう

Android DeveloperでAndroid 11 DeveloperPreviewが公開されています。
ここ数年、Androidの新バージョンはメジャーバージョンのアップデートリリースをかなり早めています。
大体のメーカーは新しいOS versionが出てから半年ほどで、新製品に搭載して発売する、ということはできていますが、すでに発売されている端末のOS version-upがなかなか進まないのが現状です。
ニュースサイトが2020年4月時点でのシェア予測を出していましたが、Android 10はまだまだ普及していないとレポートしていました。

そんな状況ではありますが、DeveloperPreviewは公開されているので、インパクトの大きそうな変更を見ていこうと思います。

・すべてのアプリに対する変更
1回限りの権限
  -> 位置情報、マイクまたはカメラに関連する権限をリクエストするたびに、一時的な「1回限りの権限」がアプリに付与される。
iPad OSというかiOSで「起動中のみ許可する」みたいなのとはちょっと違い、ユーザーが「今回のみ」を選んだ場合にワンタイムパーミッションが付与されるようです。フォアグラウンドプロセスが生きている限り有効のようで、アクセス権を失ったりすると、システムがアプリのプロセスを終了するそうなので、メンバに持っているオブジェクトでnullチェックをしていない場合は注意が必要そうです。
これに伴い、「許可しない」を2回選択した場合、「今後表示しない」ことを希望していると同義であると判断されるようです。今後、チェックボックスによる「今後、このダイアログを表示しない」というUIをなくすようにポリシーが変更されるかもしれませんね。

バックグラウンドでの位置情報のアクセス
 -> Android 11をターゲットとするアプリは、このアクセスを常に許可するように直接リクエストすることはできません。
上記に伴う変更で、特に位置情報については、常に「1回限りの権限」を付与して動作させるよ、ってことでしょうか。位置情報はかなりセンシティブな情報なので、取得方法がかなり厳格になってます。

ACTION_MANAGE_OVERLAY_PERMISSIONのインテント
 -> 常にトップレベルの「設定」画面に移動し、SYSTEM_ALERT_WINDOW権限を付与したり、取り消したりすることができる。パッケージを指定してアプリごとの個別の権限を管理する画面に移動できたが、これをサポートしなくなったということです。

・Android 11をターゲットとするアプリ
カスタムトーストビューのブロック
 -> サポートを終了します(!!!)。これはかなりインパクトがありそうです。
targetSdkVersionが古めのUIをかなり弄ってるアプリはToastで使うレイアウトも変更している気がします。Android Developerでは「バックグラウンドからカスタムビューを含むトーストを送信しようとするとブロックされます。」と記載があることから、フォアグラウンドでは問題なさそうに見えますが、そもそも使用をオススメしないとあります。スナックバーを使ってくださいとのこと。テキストだけなら特に制限されないAPIのようです。

フォアグラウンドサービスのタイプの追加
 -> cameraとmicrophoneが追加され、AndroidManifestのServiceタグにある、foregroundServiceType 属性に追記する必要があるようです。

開発者としては権限周りがまた変わったなぁという印象。トーストのカスタムビューのサポート停止はちょっとびっくりしました。
権限周りはtargetSdkVersionに依らない変更になるので、位置情報・カメラ・マイクの権限を使う際は注意したいですね。

2020年5月3日日曜日

AOSPについてと、5G時代に突入した端末の話

AOSPとはAndroid Open Source Projectの頭文字です。
聞いたことあるって方も多いと思います。
AndroidはこのAOSPがベースとなり、このAOSPに当たるコードは改変が自由となっています。ただし、オープンソースであるがゆえに、その改変したコードも公開する必要があります。
ピュアネスAndroidのビルドは該当のコードだけでもできるはずです。
Androidのビルドなんかは手順が公式サイトにて公開されています。
https://source.android.google.cn/setup/build/building?hl=ja


日本のキャリア向けの主要なメーカーはSony Mobile、Samsung、SHARPの3社でしょうか。
去年とにかく強かったのはHUAWEIですが、今年からの新端末はGoogleの認可が下りないでしょうから、ちょっと除外しました。
というわけで各社開発者ページが設けられております。
GoogleもGitHub上でAOSP元コードを参照することができます。

Sony Mobile
https://developer.sony.com/ja/develop/open-devices/downloads/open-source-archives
Samsung
https://opensource.samsung.com/uploadList?menuItem=mobile&classification1=mobile_phone
SHARP
https://k-tai.sharp.co.jp/support/developers/index.html

興味があったら覗いてみてくださいね。

ここからは5Gのサービスも始まった各社端末のお話。
Xperia 1 IIはSoftbankでの取り扱いが見送られました。
その分去年楽天がXperia Aceを扱っていたりします。
楽天は今後3大キャリアが採用しないミッドレンジXperiaの取り扱いをしてくれるのではないかと期待してます。
そこそこ要望の多かったXperia 10をどのキャリアも採用しませんでしたが、今年はdocomoとauがXperia 10 IIの取り扱いがあります。
もし秋にXperia 8の後継機(Xperia 8 II?)が出るとして採用したら、結構流れる可能性があると思います。
au、Softbankは中国メーカーの採用が顕著ですね。。。一年後にこういった紹介をするなら、ここで採用されたZTE、Xiaomi、Oppoなどですかね。Xiaomi、Oppoは割と良い印象を持っています。
国内ではLGは中堅でたまに顔を出す程度(世界の業績もイマイチかな?)。ピンポイントなコラボ端末を出してくれる、特定のユーザーにはありがたいメーカー。ではあるのですが、端末の完成度は個人的には微妙。
富士通は久々のハイエンドが発表されましたが、らくらくスマホを常に供給してますね。
富士通ハイエンドは苦い思い出しかないという方がほとんどだと思いますが、果たして。

5Gの恩恵はまだまだ感じられない時期ですが、サービス拡充時にそれを享受できるのはSamsungのGalaxyシリーズのみかな?スペックとしてもGalaxyはいつもちょっと先を行っているイメージですね。高いですけど。
Xperia 1 IIとAQUOS 5Gはミリ波対応していなかったと記憶しています。
その中で選ぶとすると、スペックで言えば断然Galaxy、クリエイティブに偏ったのがXperia、それ以外は好みといったところです。
価格と相談すると中国メーカーも視野、ですよね。スペックも良いですし。
ずっとXperiaを使い続けてきているので個人的にはXperia 1 IIを推してしまいますが。

余談。あまり国内では注目されませんが、海外特に米国では京セラがかなりのシェアを持っています。アウトドア向けタフネススマホを供給する数少ないメーカーで評価が高いです。
サブ機としてPHSの勢いがあったときHONEY BEEシリーズが話題でしたが、こちら京セラ製。
いつか国内でも日の目を見る日が来るのでしょうか。