2012-05-03 2 views
1

Ее то, что я пытаюсь выполнить:BroadcastReceiver с фильтром намерения для них?

  1. Когда пользователь пытается поделиться какой-нибудь текст из любого приложения (как обмен чирикать или ссылку), мое приложение будет отображаться в списке обмена.
  2. Если он выберет мое приложение, будет запущен некоторый простой код (например, показ Тоста), вот и все. Интерфейс или интерфейс не требуется.

Вот как я это сделал:

AndroidManifest.xml

<receiver 
android:name=".MyBroadcastReceiver" > 
    <intent-filter 
     android:label="select my app"> 
     <action android:name="android.intent.action.SEND" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <data android:mimeType="text/plain" /> 
    </intent-filter>     
</receiver> 

MyBroadcastReceiver.java

public void onReceive(Context arg0, Intent arg1) { 
    // TODO Auto-generated method stub 
    //Some simple code 
    Toast.makeText(arg0, "My Receiver is cool", Toast.LENGTH_LONG).show(); 
} 

Это не сработало, мое приложение Безразлично Показывать в списке совместного доступа.

Почему я работаю с BroadcatReceivers, а не с Activities? Потому что я не хочу никакого пользовательского интерфейса, и я думаю, поэтому у нас есть приемники (исправьте мой плз)

Имею ли я это правильно?

ответ

8

Это не сработало, мое приложение не отображается в списке общего доступа.

ACTION_SEND Используется с видами деятельности. Вы пытаетесь использовать BroadcastReceiver. Поскольку BroadcastReceiver не является активным, это не сработает.

Я делаю это правильно?

No.

Если он выбрать мое приложение, некоторые просто код будет работать (например, показывая Toast), то это все. Интерфейс или интерфейс не требуется.

Вам по-прежнему нужно заниматься. Однако, если вы даете активность Theme.NoDisplay, и вы не вызываете setContentView(), пользовательский интерфейс для этого не будет. Обычно вы просто вызываете finish() из onCreate() после выполнения того, что вы хотели сделать (в этом случае отобразите Toast).

Например, this sample application показывает деятельность (FauxSender) создан, чтобы сделать именно то, что вы хотите: реагировать на ACTION_SEND с Toast. Он имеет другое действие, которое выдает ACTION_SEND, чтобы вы могли видеть результаты.

+0

Проблема решена. Благодаря ! – iTurki

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