私は検索機能を使用し、多くの例を読んで試しましたが、問題の解決策が見つかりません...それで、ここに行きます:
1つのBroadcastReceiverにのみインテントを送信したい。したがって、新しいインテントを作成して、packageNameとpackageClassに送信する必要があります。
intent.setComponent(new ComponentName(packageName, className));
packageNameとclassNameを見つけるには、次のコードを使用します。
String appInfo = list.get(myPlayer).activityInfo.toString();
Log.d("TAG", "app " + appInfo);
String packageName = list.get(myPlayer).activityInfo.packageName.toString();
Log.d("TAG", "package " + packageName);
String className = list.get(myPlayer).activityInfo.getClass().getName().toString();
Log.d("TAG", "class " + className);
logcatから次の結果が得られます(Play Musicの例):
app ActivityInfo{417bd5e0 com.google.android.music.MediaButtonIntentReceiver}
package com.google.android.music
class android.content.pm.ActivityInfo
これはおかしくないですか?何らかの理由で、クラスログには「MediaButtonIntentReceiver」のみが必要であり、「android.content.pm.ActivityInfo」は期待していません!!!
誰かがこれを修正する方法を知っていますか?