2011-08-08 3 views
0

私が開発している現在のアプリケーションでは、ユーザーが現在どのような方法でやりとりしているのかを知る必要があります(悪意のある意図はありません)。つまり、実行中のアプリプロセスとサービスは常にたくさんありますが、実際には少数の選択されたインスタンスしか実際にインスタンス化または監視されません。Android:アプリケーションの認知度

私は、実行中であることが分かっている実行中のアプリケーションプロセスに対処する必要があります。たとえば、フォアグラウンドの現在のアプリ、バックグラウンドで再生している音楽などです。しかし、私は、常に実行されているSetCPU、マップ、およびキーボードサービスを無視したいと思います。

これらの情報の大部分は、特定のアプリケーションのRunningAppProcessInfoインスタンスと、その中のフィールドに存在します。フォアグラウンドのアプリケーションでは、フィールドはIMPORTANCE_FOREGROUNDに設定されます。私の他の条件(音楽の例1)には少し問題があります:このシナリオを完全に扱う定数IMPORTANCE_PERCEPTIBLEが存在しますが、API 9以上(Gingerbread、事実上)にのみ関連します。 Androidソースを熟読した後、この特定の値はAndroid OSの非常に低いレベルに設定されているため、簡単に再作成可能なものではないようです。

この巨大なテキストの壁の後、私の質問は...私はどうすればこの問題を回避できますか?私は、思いやりのあるサービスから音楽プレーヤー(私が考えることができる唯一の例です)を区別することができる必要がありますが、同時に私はGingerbreadを実行している人だけに私のアプリを格下げする余裕がありません。開発者は何をするのですか?

答えて

0

これはルート以外のユーザーには可能ですが、どのアプリケーションがフォアグラウンドで保持されているかを追跡できるかどうかは完全にはわかりません。次に、アプリケーションが持つプロセスやサービスがユーザーにとって重要であると考えることができます。

多くのアプリケーションがバックグラウンドでポップアップ表示されます(例:マップなど)。ユーザーがアプリを開いたことがない場合は、気にしないとみなすことができ、そのサービスを無視してフラグを立てることができます。

また、アプリケーションの重量を測定することもできます。ユーザーが費やした時間のパーセンテージと言ってください。特定の重量を下回るアプリがすべて無視されるようになりました。

+0

ええと...私は達成しようとしていることを実装するのに邪魔されない方法がないことを知りましたので、この背景に該当する選択されたアプリケーションについては、しかし、私が作り出しているものは歪んでいるかもしれません。私は、しかし、私はいくつかのマージンをオフになっている場合でも、少なくとも完全に言ったアプリを無視しないようにあなたのアイデアを考慮に入れます。 –

関連する問題