2013年8月7日水曜日

久しぶりにSignalStreangthを覗いたら

昔作ったアプリをLTEに対応させる過程で面白い(?)ものを見つけたのでメモ。

  1. AndroidのLTE対応に伴い、SignalStreangth内部にもLTE関連のプロパティやメソッドが追加された
  2. ところが、追加されたメソッドは軒並み非公開 ( ゚д゚)
  3. しかし、隠蔽したLTE絡みのプロパティをtoStringでゲロってる!

で、これを利用した手っ取り早く内部プロパティにアクセスする方法が

How to get LTE signal strength in Android? (stackoverflow)


Reflection使うよりマシと言え、お世辞にもスマートとは言えないよね。
(getLevelやgetAsuLevelは使い勝手良さそう。既存のgetterをリプレースできるし)


この辺りってみんな似たような処理を書くと思うのだが、なんで隠蔽しているんですかね?
もしかして、良からぬことしているんですか、とか突っ込んじゃいそう...