11

Lookoutアプリ(https://play.google.com/store/apps/details?id=com.lookout)を使用すると、アプリをインストールまたはアップグレードするたびに、このアプリが自動的にスキャンされ、悪意がないことを確認します。

Lookoutに従って、各アプリがインストールまたはアップグレードされるたびにブロードキャストメッセージを聞く簡単なアプリを作成します。AFAIK、ブロードキャストメッセージ用のIntentFilterには、次のようなものがあります。

  • Intent.ACTION_PACKAGE_ADDED
  • Intent.ACTION_PACKAGE_CHANGED
  • Intent.ACTION_PACKAGE_INSTALL

答えだといいIntent.ACTION_PACKAGE_ADDEDのですが、間違っています(ACTION_PACKAGE_ADDED:新しいアプリケーションパッケージがデバイスにインストールされました。データにはパッケージの名前が含まれています。新しくインストールされたパッケージはこのブロードキャストを受信しないことに注意してください)ACTION_PACKAGE_INSTALL

誰かが私にもっと良い方法を教えてもらえますか?どんな助けでも大歓迎です。

4

4 に答える 4

13

アプリケーション A をインストールしている場合、デバイス上の他のすべてのアプリケーションは、Intentアプリケーション A が新しくインストールされたアプリケーションであると認識しますが、アプリケーション A 自体は役に立たないように思われるため、アプリケーション A 自体ではありません。他のアプリが後でインストールまたは変更された場合、A はブロードキャストを取得します。

アプリがいつインストールされたか、または他のアプリが最後にインストールまたは更新された時刻を知りたい場合は、いつでも次を使用できますPackageManager

PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String appFile = appInfo.sourceDir; 
long installed = new File(appFile).lastModified();

app.package.nameインストール時間を知りたいアプリのパッケージ名です。アプリで使用する場合は、アプリのパッケージ名を渡します。

于 2012-05-03T09:51:37.777 に答える
0

2 つのアプリケーションが必要です。そのうちの 1 つは、他のアプリのインストールとアップグレードを監視します。

于 2012-05-01T07:42:44.670 に答える