は、次のように私のコードを実装している私のBroadcastReceiver class.Iからユーザーが開いたアプリを取得する必要があります。どのようにユーザーが現在開いているアプリケーションを取得するには?私は彼のdevice.Iにユーザー開いたりインストールされたアプリケーションを取得したいと思いソリューションを探しています
public class AppReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
ActivityManager am = (ActivityManager)context.getSystemService(context.ACTIVITY_SERVICE);
List l = am.getRunningAppProcesses();
Iterator i = l.iterator();
PackageManager pm = context.getPackageManager();
while(i.hasNext()) {
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo)(i.next());
try {
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
Log.v(" App Name : ", c.toString());
}catch(Exception e) {
}
}
}
上の私はすでに(インストール)に存在している新しいアプリを開いたときにLog.vでアプリ名を取得するために実行していないAppReciver上記のコードから
<receiver android:name="AppReciever">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PACKAGE_ADDED"></action>
<action android:name="android.intent.action.PACKAGE_CHANGED"></action>
<action android:name="android.intent.action.PACKAGE_INSTALL"></action>
<action android:name="android.intent.action.PACKAGE_REPLACED"></action>
<action android:name="android.intent.action.PACKAGE_RESTARTED"></action>
<data android:scheme="package" />
</intent-filter>
</receiver>
:私としてもマニフェストファイルでこのレシーバについて追加した
デバイス上で実行されている他のアプリを一度だけ動作させています。
すべてのボディは、BroadcastReceiver
私は、アプリ名にのみ新しいpackage_addedを取得していますが、私は私はあなたが求めているものを手に入れることができませんごめんなさい –
package_restarted/package_install/package_replaced/package_restarted場合、私は取得する必要があります私のためにあなたの質問を言い換えることができますか? インストールされているすべてのアプリを取得しますか? –