2016-02-23 2 views
1

Я работаю над несколькими небольшими проектами, которые мне не знакомы. У меня есть события локальной трансляции, и он регистрируется из сценария.Как узнать, откуда звонил радиоприемник?

context.registerReceiver(stReceiver, stIntents); 

private BroadcastReceiver stReceiver = new BroadcastReceiver() { 

     @SuppressWarnings("unchecked") 
     @Override 
     public void onReceive(Context context, Intent intent) { 

} 
}; 

Мне нужно выяснить, с чего это радиоприемник вещания? Есть ли способ узнать, из какого класса вызовы .sendBroadcast(intent);?

ответ

0
You can put check 

like this 

@Override 
    public void onReceive(Context context, Intent intent) { 

if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) { 
//Do your part 

} 
} 

In place of Intent.ACTION_MEDIA_BUTTON you can use your own action you mention in the intent filter while registering a receiver 
+0

Спасибо за ваше время, но это не я ищу. –

1

Я не уверен на 100%, независимо от того, работает это или нет, но попробуйте. Используйте заявление журнала для печати intent.getClass().getName() в onReceive функция. Поскольку намерение передается из класса вызова, оно будет предоставлять имя класса.

+0

Спасибо. Он не дает имя вызывающего класса. Кстати, вы единственный человек, отвечающий на вопрос, хотя решение неверно. –

+0

Пожалуйста, дайте мне знать, если вы получите правильное решение –

+0

Нет. Это неправильный ответ. –

0

AFAIK context.registerReceiver(stReceiver, stIntents); сам по себе .sendBroadcast(intent); здесь.

.sendBroadcast(intent); используется в глобальной трансляции. Для местного registerReceiver(BroadcastReceiver receiver, IntentFilter filter) достаточно для начала трансляции.

I need to find out where is this broadcastReceiver calling from? 

Так что в вашем случае context.registerReceiver(stReceiver, stIntents); сам является отправной точкой.

Для получения дополнительной информации:

http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

+0

Спасибо, но я сомневаюсь. Локальная трансляция также имеет метод, называемый sendBroadcast (намерение намерения) в API. Так в чем его польза? –

0

вы можете проверить действие для Намерения. и выполните поиск в вашем проекте

String action = intent.getAction();

Смежные вопросы