Titaniumでインストールされているアプリのチェックをしたい
Titaniumからは、直接Android機にインストールされているアプリのリストを見に行けないっぽい。
つか、それが出来るならこんな苦労してない。
ネイティブのコードでアプリのリストを取得しているサンプルはたくさん見かけるので、それを元に(Titaniumモジュールの練習も兼ねて)簡単なモジュールを書いてみた。
んだけど、肝心のアプリ一覧の取得の部分で警告出てビルドが通らない。
@Kroll.method public Boolean AppCheck(String CheckAppName) { Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); Boolean AppFound = false; PackageManager pm = getPackageManager(); for (ResolveInfo info : pm.queryIntentActivities(mainIntent, 0)) { Log.d("ラベル", info.activityInfo.loadLabel(pm).toString()); Log.d("パッケージ名", info.activityInfo.applicationInfo.packageName); Log.d("クラス名", info.activityInfo.name); if (info.activityInfo.name == CheckAppName) { AppFound = true; } } return AppFound; }
getPackageManager() が undefined だと言われる。
複数のサンプルを参考に import android.content.pm.PackageManager; は入れてあるんだけども。
幾つかサンプルを見ながらいろんなライブラリを繋いでみるけど、一向に警告は消えない。
なにか根本的な間違いがあるのか、そもそも単体アプリでは動作するけどモジュール内では使えないとかいう制限があるのか・・・。
これができないとなると、かなり泥臭くてかっこ悪い実装に挑戦するハメになるんだけどなぁ。