PackageManager#queryIntentActivities (Intent intent, int flags) を利用すればOK。flagはPackageManagerの定数。
Author: rawbytes
-
ライブ壁紙でタッチイベントを取得する方法の要点だけ
Androidのライブ壁紙でタッチイベントを取得して、何かエフェクトをかけたり、動作をさせたりしたいときのやりかた。
端的には、WallpaperService.EngineのonTouchEvent(MotionEvent event)またはonCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested)いずれかをオーバーライドすれば良い。
大きな違いとして、onTouchEventは、アプリのアイコンをタッチしたときなんかもイベントが発生してしまうのに対して、onCommandは、HOME画面中何もないところをタッチしたときだけにイベントが発生する(actionのところに”android.wallpaper.tap”というのが来て、x, yで座標が分かる)。これはHOMEアプリから発行されるイベントのようで、デフォルトのHOMEアプリ利用時に発生しないというような記述をどこかで見かけたけど、これは未確認。
なお、ライブ壁紙上の操作から何かしらIntentを発生させたい時は、通常どおり新規のIntentを作成してContext#startActivity()してやれば良いが、IntentにIntent#setFlag(Intnet.FLAG_ACTIVITY_NEW_TASK)をしてやる必要がある。これをしないとExceptionが発生するよう。
-
AndroidアプリをAntでビルドするための要点だけ
Jenkinsとかに興味が出てきたので、AndroidアプリをAntでビルドするための方法について調べた。
ドキュメントにはコマンドラインのandroidツールからプロジェクトを作成するとbuild.xml(Antの設定ファイル)が生成されるとあるけれど、
実際に必要なのは以下のgithubに置いた3ファイル。あとはEclipseで生成できる普通の(?)プロジェクトでOK。https://github.com/hkurosawa/android_ant
(1)↑にある3ファイルをプロジェクトのルートディレクトリに展開する
(2)local.propertiesがAndroid SDKを指すように変更する
(3)ant.propertiesがkeystoreおよびalias名を指すように変更する(配布用の署名までAntで行う場合)使い方やターゲットはプロジェクトのルートで$ antとすれば出てくる。
ところで、プロジェクトに生成されるbuild.xmlはほとんど空で、実体は{sdk}/tools/ant/build.xmlをincludeしているみたい。[追記]
$ android update project –path /path/to/project すれば、コマンドラインから必要なファイルを生成してくれるみたいで、このエントリあんまり意味ないことに気づいた。 -
DjangoでDotCloud環境とローカル環境の使い分けの要点だけ
gistで見つけた。要は単にsettings.pyでenvironments.jsonを読み分ければ良いみたい。
-
keytoolコマンドでapk署名用のkeystoreファイルの作成の仕方の要点だけ
<script src=”https://gist.github.com/1559067.js?file=gistfile1.sh”></script>
-
Android apkの署名をコマンドラインから削除、付与、検証する要点だけ
Android apkの署名操作:削除、付与、検証
https://gist.github.com/1464515 -
dotcloudでDjango
dotcloudのチュートリアルでDjango + Mongo DBがうまく動かなかったのでメモ的に書いとく。
単にチュートリアルが古いだけなのでそのうち修正されるんだと思う。http://docs.dotcloud.com/tutorials/python/django-mongodb/
このドキュメントの、requirements.txtの部分の記述が古くて、うまくdotcloud pushできない(エラーをよく見ると、django-mongodb-engineがgithubからpullできてないみたい)。これを、このように書くとうまくデプロイできる。
-
Androidでランチャーから起動可能なActivityの一覧を取得する方法の要点だけ
PackageManagerというクラスを指定して、特定のIntentに対応するActivityの一覧をListで取得できる。ResolveInfoからは該当Activityに関する様々な情報が参照できる。
-
AndEngine Wallpaper Extension Exampleが動かないので直した。
Google CodeでホストされているAndEngine Wallpaper Extension Exampleのコードには古いライブラリjarが同梱されていて、最新のライブラリだと動かないというのを発見した。
パッケージ階層が変わっていたり、deprecatedなメソッドが出来ていたりするみたい。
http://code.google.com/p/andenginelivewallpaperextensionexample/なので、諸々直したのを以下に置きました。
http://code.google.com/r/kh99mail-andenginelivewallpaperextensionexample/GoogleCodeもMercurialもあまり使ってないのでどうやって作者さんに知らせたら良いか分からず、直したよってメールしてみた。これで合ってるのかな。正しいやり方があったら誰か教えてください。