ユーザーがインストール済みアプリケーションを起動したときにメッセージを表示するバックグラウンドサービスを作成する

Rohit

ユーザーがアプリケーションをクリックすると、アプリケーションの名前を含むメッセージがユーザーに表示されるという意味でサービスを作成しようとしました。ソリューションのコードは見つかりませんでした。解決策を提案していただければ幸いです。ありがとうございました。

いくつかのコードを見つけましたが、正しく機能しませんでした。1つのアプリケーション、つまりサービスが実行されているアプリケーションに対してのみメッセージが表示されます。インストールされているすべてのアプリケーションのメッセージを表示したいと思います。

@Override
        public void onStart(Intent intent, int startId) {


                            ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
                            List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager.getRunningTasks(1);
                            ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
                            String activityOnTop = ar.topActivity.getClassName();
                            Toast.makeText(this, activityOnTop, Toast.LENGTH_LONG).show();
チトラン

わかりません、このサービス部分はどのように機能しますか?

ただし、これは、どのアプリがフォアグラウンドにあるかを知るのに役立つコードです。

    ActivityManager manager = (ActivityManager) context
            .getSystemService(ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager
            .getRunningTasks(1);

    ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
    final PackageManager pm = context.getApplicationContext()
            .getPackageManager();
    ApplicationInfo ai;
    try {
        ai = pm.getApplicationInfo(componentInfo.getPackageName(), 0);
    } catch (final NameNotFoundException e) {
        ai = null;
    }
    final String applicationName = (String) (ai != null ? pm
            .getApplicationLabel(ai) : "(unknown)");
    System.out.println("applicationName = " + applicationName);

残念ながら:getRunningTasksメソッドはAPIレベル21で非推奨になりました:(

参照:http//developer.android.com/reference/android/app/ActivityManager.html#getRunningTasks(int)

したがって、これを慎重に使用し、SOユーザーが他の解決策を見つけるまで待ちます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ