2013年2月20日水曜日
[Swipestarter]メニューボタンが無い端末で変な感じに
メールで知らせていただきましたので、こちらでも報告させていただきます。
メニューボタンが無い端末(HTC J butterfly)にてフォルダ等を起動した際にドックの下あたりに「:」←こんな感じのソフトウェアキーのメニューボタンが表示されます。
これは何かというと、メニューボタンが無いので4.X系に最適化されていないアプリを起動したときに、メニューを押せるようにOSが判断して表示しているっぽいです。
4.X系に最適化って何?っていうのは、アクションバー対応です。
4.X系ではボタン構成が従来の「メニュー」「ホーム」「戻る」「検索」から「アプリ履歴」「ホーム」「戻る」になりました。
メニューボタンが消されちゃいました。そのかわり、アクションバーっていうのをアプリ内に組み込んでそこからメニューを起動しろと。
まぁ、メニューなんてアプリの中で完結できるはずだから、わざわざハードに実装する必要もないんだろうけど。
この方向性は間違っていないとは思うんですけど、それを強制しちゃうところがAndroidのニクいところ。
Swipestarter(に限らず、僕のアプリ全般)では、Android2.1くらいから使えるように作っています。
なので、アクションバーも実装していないです。
このような実装のアプリを起動した際には、メニューキーの無い端末の場合、OSが勝手に判断してメニューを表示してくれます。
たとえばGalaxyNexusのようなソフトウェアキーの場合、端っこにちょこんと「:」←こんな感じのメニューが追加されます。
そして、HTC J butterflyのようなハードキーの場合、ドックの下あたりに「:」←こんな感じのソフトウェアキーのメニューボタンが表示されます。
超かっこ悪いですね。
今のところハードキーかつメニューキーの無い端末は、まだそんなに出回っていない(と思っている)ので、この現象にぶち当たる人は少ないかもしれません。
で、結論を言うと、これは治せます。
アプリのターゲットSDKバージョンを4.X系にしちゃえばいいです。
そうすると、OSがアクションバーを実装してあるとみなして「:」←これが出なくなります。
対応自体は簡単そうですが、ターゲットを変更したことによる動作検証をしなければいけないので、まとまった時間が作れたら対応します。
あ、あとメニューがある画面(ドロワーだけかな)にメニューを表示できるボタンを追加しないとダメですね。
どんどんたまっていく。。。ごめんなさい。
なぜ対応を後回しにしたかというと、HTC J butterflyにはハードキーの設定があるらしく、そこでメニューを割り当てるとOSがメニューボタンありと判断して「:」これが出なくなるとの報告を貰ったからです。
という事で、いったん端末の設定側で逃げてください。
よろしくお願いします。
2013年2月12日火曜日
GoogleNowはいらない
この前のFlipClip対応した時に、GalaxyNexusを4.2にしました。
(4.1が無くなっちゃった。どうしよう。リカバリで戻せるようにしておこうかな。)
で、少し弄ってたらなんだか結構使いやすいなぁと思い始めたので、メイン端末をこれにしちゃいました。
どうも、4.2(4.1もだっけ)を常用するとGoogleNowが鬱陶しい。
今まで、下の真ん中からSwipeStarterでドロワー表示にしてたからってのもあるんだけど、Nowの代わりにドロワー表示したいなぁって。
で、ちょろっとググったら「android.intent.action.ASSIST」を受け取って起動するアプリを作ればいいとのこと。
このあたりは常用端末には欠かせないという事でさっそく「つぎはぎ」で作成。
出来ました。
似たアプリあるかと思ったけど、見つからなかったのでマーケットにも登録しました。
検索の方法が悪いだけか?
みんなGoogleNow使ってんのかなぁ?
自分的にはまるでいらない機能なんだけどなぁ。
1時間足らずで作ったし、自端末でしか動作確認してないけどよろしければ。
Google Now は いらない
https://play.google.com/store/apps/details?id=tora.mamma.assistlauncher
起動方法はホームボタンのところからスワイプ(Nowのやつ)で、起動するものをアプリかショートカットから選べます。
登録:
投稿 (Atom)