0

自分のアプリケーションを介してユーザーがどのアプリケーションをクリックまたは起動/開始したかを検出する受信機があるかどうかを知る必要があります

4

2 に答える 2

1

logcat 出力を使用して分析できると思います。

同様のすべてのプログラムで、この許可を見つけました:

android.permission.READ_LOGS

全員が使っているということです。しかし、プログラムが開始されたようで、その後、プログラム (アプリ プロテクター) が開始され、前面に表示されます。

以下のコードを使用してください:

try
    {
        Process mLogcatProc = null;
        BufferedReader reader = null;
        mLogcatProc = Runtime.getRuntime().exec(new String[]{"logcat", "-d"});

        reader = new BufferedReader(new InputStreamReader(mLogcatProc.getInputStream()));

        String line;
        final StringBuilder log = new StringBuilder();
        String separator = System.getProperty("line.separator"); 

        while ((line = reader.readLine()) != null)
        {
            log.append(line);
            log.append(separator);
        }
        String w = log.toString();
        Toast.makeText(getApplicationContext(),w, Toast.LENGTH_LONG).show();
    }
    catch (Exception e) 
    {
        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
    }

Androidマニフェストに対する許可を忘れないでください。

更新: Logcat を追跡することで、起動されたアプリケーションを見つけます。info -I logを使用してActivityManager タグを追跡するだけです。

adb shell コマンドからは、

adb logcat ActivityManager:I *:S

アプリケーションコードから、

logcat ActivityManager:I *:S

Logcat では、次のような行を見つけることができます。

I/ActivityManager(  585): Starting activity: Intent { action=android.intent.action...}

アプリケーションがいつ起動されるか。

メッセージが優先度レベル「I」とタグ「ActivityManager」に関連していることを示す logcat 出力です。

アプリケーションのマニフェスト ファイルにアクセス許可を追加するだけで、

android.permission.READ_LOGS

于 2013-02-05T07:33:07.113 に答える