1

バックグラウンド

私はアプリマネージャーアプリを開発していますが、アンインストール時にデータの削除を避けるように要求したアプリである「アンインストールされたアプリ」のリストを取得する方法があることに気付きました (「GET_UNINSTALLED_PACKAGES 」フラグを使用) .

ドキュメントの内容は次のとおりです。

データ ディレクトリを持つすべてのアプリケーション (アンインストールされたものも含む) に関する情報を取得するためのフラグ パラメータ。この状態は、アプリケーションがフラグ DONT_DELETE_DATA で削除され、将来置き換えられるか再インストールされる可能性がある場合に発生する可能性があります。

注: このフラグを使用すると、現在インストールされているアプリケーションについて返される情報が少なくなる場合があります。

問題

この機能についてさらに調査しようとしましたが、このドキュメント以外にはほとんど何も見つかりませんでした。

質問

  1. そのようなアプリはどのようにこの機能をリクエストしますか? 私が書いたものを除いて、ドキュメントのどこにも「DONT_DELETE_DATA」が見つかりません。このWebサイトを見ると、PackageManagerクラスの一部のようですが、Eclipseで公開されていることはわかりません。
  2. データはどのくらいの期間保持されますか?
  3. そのようなアプリを検出するにはどうすればよいですか? それを示すPackageInfoまたはApplicationInfoを見るものはありますか? おそらく ApplicationInfo の「FLAG_INSTALLED 」ですか?私はそれを実行しましたが、多くのアプリをインストールおよびアンインストールしたにもかかわらず、このフラグがオフになっているアプリのリストはありません。
  4. そのような「ゴースト」のようなアプリをアンインストールすることを選択すると、本当にそれらが削除されるのでしょうか?
  5. これらのアプリは、組み込みの app-manager で引き続き表示できますか?
  6. そのようなアプリを引き続き管理できますか?
  7. そのようなアプリからどのような情報を取得できますか (アイコン、名前など...)? ドキュメントには「このフラグは情報が少ない可能性があります」と書かれているので、これを尋ねます。
  8. ドキュメントによると、GET_UNINSTALLED_PACKAGES を使用すると、「現在インストールされているアプリケーション」に関する情報が少なくなる可能性があります。間違いですか?「現在アンインストールされているアプリケーション」ではありませんか?
  9. アプリがデータを削除しないというこのフラグを使用する場合、それは内部ストレージ、プライベート データのみ、または外部ストレージ、パブリック データのみを意味しますか?
4

1 に答える 1

1

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/pm/PackageManager.javaのソース コードによると、PackageManager には、フラグ パラメーターを取る deletePackage メソッドがあります。

DONT_DELETE_DATA は、これらのフラグの 1 つです。したがって、これはアプリケーションの属性ではなく、アプリケーションの削除中にデータを保持するように指示する deletePackage メソッドへのフラグです。

メソッドに @hide タグがあるため、javaDocs に deletePackage は表示されません。

于 2014-08-23T11:31:30.837 に答える