タグ「Android L」 の検索結果(1/1)

2014年7月16日

Lと私(その3 モバイルデータ設定の小ネタ)

Android Lにしたらだいぶデータ通信の調子が悪くなりました。まぁしょうがないかな、とは思います。
で、モバイルデータのON/OFFをチマチマ切り替えるんですが、ちょっと細かいですがこのひっかかった気持ちを誰かに伝えたくて。

まず、Notificationをさらに下げたQuick SettingのCellularアンテナのとこをタップすると設定に飛びます。
まったく関係ないですがこのQuick Settingの二段ひきずりおろし、一段目でスカートで二段目でパンツというのを考えたのですが誰かカスタムROMでどうですか。どうでもいいですね。

mobile1.png
このモバイルデータのON/OFFのスイッチをタップすると、

mobile2.png
こんな風にわざわざ無効にするかどうか確認されるのですが、この時キャンセルしても、スライドスイッチはすでにアニメーションし終わっているので

mobile3.png
このように、左側にずれてるんだけど有効、という変な状態になります。戻れよ。

ちなみに以前使ってたXperia SX、SO-05Dちゃんでは逆にOFFからONにする時に「なんかデータ通信ONにすることによって予期しない料金が発生しちゃうかもしれないけどいい?ほんとにいい?」って確認ダイアログが出て、逆だったんですよね。Googleとキャリア(?)のちょっと立場の違う感じが面白いです。

が、そもそもこういう確認UIの原則は「undoできるならmodal DialogでConfirmするな」だと思います。データ通信のON/OFFがセンシティブだという気持ちは分からないでもないですが...


Material DesignなLをこんなあたりをしょっちゅう気にしながら触ってるわけです。はー職業病キモい。

2014年7月14日

Lと私(その2 BLE Peripheral Characteristic Read/Write編)

◯はじめに

前回はAdvertiseパケットがいじれてiBeaconができることが分かったので、次はRead/Write Characteristicを実装してみました。

あとで整理しますがGithubのias branchに置きました。後でNotify/Indicateまで試した後リポジトリは整理したいと思います。

◯手順

結局のところ以下の手順となります。

  1. AdvertisementData.Builder#setServiceUuidsで提供するService達を設定する。しないとCharacteristicが欠けたりしたのでちゃんと設定する。
  2. BluetoothManager#openGattServerで開く。
  3. BluetoothGattCallbackを実装。ぶっちゃけonDescriptorReadRequestonDescriptorWriteRequestだけ実装してもなんとかなります。気が向いたら他もどうぞ。
  4. Javadocに書いてある通り、onDescriptorReadRequestとonDescriptorWriteRequestのコールバックから、BluetoothGattServer#sendResponseを忘れずに呼ぶ。

◯余談

  • BluetoothAdapter#getProfileProxyは罠。profileにGATT_SERVERを指定しても失敗する。
  • 時々Serviceが多重起動して複数Nexus 5が見つかったりする。BTのon/offで復活する。深く気にしない。
  • UUIDは128bitのフルのみ使用、16bitが色々ちゃんと動くのかは試していない。あまり試す気もない。

整理するとなくなっちゃいそうなので記録としてAcitivtyにベタ書きしたソースを以下に。

続きを読む "Lと私(その2 BLE Peripheral Characteristic Read/Write編)"

2014年7月 7日

Lと私(その1 Eclipse ADTとBLE Peripheral編)

Android L Previewが来ました。
いくらか試してみたのでメモってみます。

◯常用しているN5をL Previewに

unlockしていなかったので、adb backupして、Storage全コピーして、Factory Image焼き。adb restoreは相変わらず何が起きてるのかよくわからないけど、「多分強制的に/data/配下のアプリのファイルを放り込む動作してるんだろう」と楽観的に考えて適当にadb restoreを数回。概ねアプリ状態とストレージ状態が戻ったみたいなので、困るファイルのみ追加でMTPでコピーしてL化完了。

若干Cellularのつかみが悪くなりましたが、LTE掴まないとかテザリングできない等のトラブルは私の端末では発生していないので概ね逃げ切った模様です。

◯Eclipse+ADTでAndroid L Previewにする際の落とし穴

いろいろつまづいたのですが、結論としては以下の通りの模様です。

・Android L PreviewがついにJava 7必須になった模様。
・Macの場合は標準の6を削除後に7を入れて、「7がコマンドライン以外でも動く様にする設定を追加」する必要があります。
参考:Eclipse Kepler for OS X Mavericks request Java SE 6
http://stackoverflow.com/questions/19563766/eclipse-kepler-for-os-x-mavericks-request-java-se-6
・ADT-BundleがJuno(Eclipse 4.2)ベースなのが気に入らない方はKeplerなりLunaなりにSDK個別インスコすればいいっぽいです。
・ADT-Bundleが相変わらずADTのupdateしてもアップデートがありませんとか言いやがるので新規にADT-Bundle落としてL, 4.4W(Wear), 4.4.2(KitKat)のSDKコンポーネントをざーっとダウンロードしてしまった方が良さそう。

◯Hello L

ADT23.0.2環境がきれいに構築できたらHello Lしましょう。

https://developer.android.com/preview/setup-sdk.htmlに書いてある通りですが、Eclipseのウィザードに沿った出力だと色々おかしいので手動で直します。
・project.propertiesはandroid-Lなことを確認。
・minSdkVersionとtargetSdkVersionは両方とも"L"に。
・styleは手動で書き換え。v11とかv14とかいらないので削除。

◯Hello Android Peripheral

さて、L環境ができたらBLE Peripheralを試しましょう。
増えたandroid.bluetooth.leってパッケージのJavadocを読む限りは、Advertiseまでは素直な感じです。

GitHubに置いておきます。
https://github.com/youten/aBeacon

さて、この次は自前Service実装なのですが、4.4までのCentral限定だと役に立ってなかったGATTServerあたりが臭いと思ってるのですが、Javadoc読んでもさっぱり分かりません。
どこかで既に誰かチャレンジし終わってるんじゃないかな、と思ってるのでぐぐりつつチマチマ試してみたいと思います。iOS-Android間の「HTTPでない」「MFi外の相互通信路」ってマロンですよね。