Как получить список запущенных приложений с использованием фрагмента? - PullRequest
0 голосов
/ 08 марта 2019

Понятия не имею, как сделать это внутри фрагмента.Большинство вопросов и ответов здесь вращаются вокруг нормальной деятельности (расширяет AppCompatActivity).

У меня есть приложение с нижней навигацией, которое использует фрагменты для переключения экранов.Я старался изо всех сил, чтобы все заработало, но ничего не помогало, поэтому я решил обратиться за помощью здесь.У меня были разные ошибки с разными блоками кода.

Моя цель - получить список запущенных несистемных приложений и, если возможно, сколько минут / часов они работали.

import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.List;

public class ListFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_list,null);
        TextView tv1 = (TextView)view.findViewById(R.id.list1);
        Intent mainIntent = new Intent(Intent.ACTION_MAIN,null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        List<ResolveInfo> pkgAppList = getActivity().getPackageManager().queryIntentActivities(mainIntent,0);
        for(int i=0; i<pkgAppList.size(); i++){
            System.out.println(pkgAppList.get(i).toString());
        }
        return view;
    }
}

Это последний код, который я пробовал где-то здесь.Насколько я понимаю, это то, что в блоках кода есть методы и классы, но они недоступны для фрагментов (расширяет Fragment).Как можно обойти это?

1 Ответ

0 голосов
/ 08 марта 2019

Вы можете сделать это:

ActivityManager am = (ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();

for (int i = 0; i < runningAppProcessInfo.size(); i++) {
  if(runningAppProcessInfo.get(i).processName.equals("com.the.app.you.are.looking.for")) {
    // Do your stuff here.
  }
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...