2014年11月11日火曜日

Android 5.0でタスク切り替え系アプリは終わった

そろそろAndroid 5.0がリリースされるなぁと思ってふとエミュレータで
自作のタスク切り替えアプリを起動してみた所、何故か他のアプリの
タスク履歴情報が取得出来ない現象に遭遇した。厳密には自分自身と
ホームアプリ等のタスク情報しか取れなくなっていた。
何の不具合かと思ってよく見てみると、Android 5.0で下記APIが
deprecatedに変更されていた。

 ActivityManager#getRecentTasks
 ActivityManager#getRunningTasks

ググって調べてみるとAndroid Lで上記APIの挙動が変わっており、
自分自身とホームアプリ等のタスク情報しか返さなくなったらしい。

■ Android L getTasksの挙動変更
http://www.taosoftware.co.jp/blog/2014/07/android-l-gettasks.html

■ Alternative to getRunningTasks in Android L
http://stackoverflow.com/questions/26400469/alternative-to-getrunningtasks-in-android-l


履歴タスク、実行中タスク、フォアグラウンドのタスク等、これらAPIを多用
していたため、もはやAndroid 5.0では全く動作しない物となってしまった。
他の競合アプリ(名前は伏せておく)もおそらく同じような実装をしているため、
動作させる事は困難だろう。タスク切り替え系アプリは完全に終わってしまったのだ。

ただし唯一生き残れるのはランチャー系アプリであろう。インストールアプリの
一覧は取得可能で、ActivityManager#getRunningAppProcessesで実行中の
プロセス情報も取得可能だ。またタスクキルも可能であるため何ら問題ないと思う。


これを知った時は「もういいや…」と素直に諦めた。どうにも出来ないから。
だったらランチャー系アプリに作り直そうかとも考えたが、そもそもタスク
切り替え系アプリを作ろうとした意図、目的から完全に外れてしまうため、
仕方なくAndroid 4.0~4.4のみ動作対象とした。後は不具合修正のみ行う予定。

プライバシーだかセキュリティーだか知らないが、今まで使えてた物が
突然何らかの意図、理由で使えなくなるのはとても悲しい。Android 5.0で
標準タスク管理機能が使いやすくなっているならまだしも、そんな事は
全くなかったので尚の事腹立たしい。

0 件のコメント:

コメントを投稿