2014-01-17 2 views
0

как отправить данные из broadcatReceiver к деятельности в андроиде, как говорят Поймать получил SMS и отправить SMS (это данные) к деятельности его мой первый раз, когда я работаю с broadcatReceiver так может кто-нибудь помогите мне, я буду признателен за любую помощь.отправляет данные из трансляции в действие. как отправить?

я прочитал несколько учебников по поводу передачи данных, которые имеют некоторые шаги:

  • создать класс, который расширяет деятельность
  • создать класс, который расширяет BroadcastReceiver

, но я не знаю, как это связь между этими двумя классами.

+1

+1 с моей стороны к вашему qustion, я не знаю, кто дал -1 ... это хороший вопрос –

+0

@ Arman я сделал создать sms Receive, который расширяет BroadcatsReceiver с установкой намерения в onreceive() и создает активность, которая должна получить намерение от broadcastReciver, но она не сработала, она дает пустой после того, как я вызываю ключ, чтобы получить значение в намерении – user3006788

+0

, этот вопрос не является Чисто. начало действия с параметром является одной из первых тем в документации по Android. что вы пробовали? (т. е. почтовый код, не просто сказать «он не работает», поскольку это не полезная информация) – njzk2

ответ

0

Я хотел бы сделать что-то вроде этого:

public class YourActivity extends Activity 
{ 

    private Handler handler = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContentView(R.id.main_layout); 

    this.handler = new Handler() { 
     @Override 
     public void handleMessage(Message msg) 
     { 
     SmsMessage sms = (SmsMessage) msg.obj; 
     String senderNumber = sms.getOriginatingAddress(); 
     } 
    }; 

    // Register a new receiver that will trigger on SMS_RECEIVED event 
    IntentFiler filer = new IntentFilert("android.provider.Telephony.SMS_RECEIVED"); 
    registerReceiver(mSmsReceiver, filter); 
    } 

    @Override 
    protected void onDestroy() 
    { 
    super.onDestroy(); 

    // Unregister the receiver 
    unregisterReceiver(mSmsReceiver); 
    } 

    private mSmsReceiver = new BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     Bundle bundle = intent.getExtras(); 
     if (bundle == null || bundle.containsKey("pdus") return; 

     // Decode the message 
     SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdus[0]); 

     // Notify the activity with the message 
     Message msg = new Message; 
     msg.obj = sms; 
     YourActivity.this.handler.sendMessage(msg); 
    } 
    }; 
} 
0

receiver и Activity являются отдельными юридическими лицами и, как правило, непосредственно не взаимодействуют. Представьте себе следующий сценарий: у вас есть получатель, получающий много SMS-сообщений, и каждый раз, когда вы его получаете, вы запускаете Activity для отображения полученного сообщения. Разве это не будет очень раздражать пользователя?

Я бы сказал, что вы можете взаимодействовать с пользователем, создав Notification, и если пользователь нажмет на него, то вы откроете Activity, где хотите показать подробности.

Как передать данные в Activity (мы надеемся, используя уведомление сначала), учитывая, что SMS-сообщения имеют короткий характер, вы можете просто поместить данные в Intent.

Как установить Notification запустить Activity: см Open application after clicking on Notification

+0

@ s1m3n, что мне нужно от получающего sms, заключается в том, что после того, как я поймаю sms, я перевешу этот sms на моя электронная почта, где элемент электронной почты - это код класса, который расширяет активность ... поэтому моя проблема заключается в получении полученных sms, мне нужно отправить полученные sms из широковещательных сообщений в активность – user3006788

+0

Теперь я не понимаю: - Можете ли вы объяснить, что «элемент электронной почты - это код класса, который увеличивает активность»? – s1m3n

+0

Я имею в виду класс, который расширяет Activity - это код электронной почты i ... код отправки электронной почты с использованием gmail-отправителя работает так, что мне нужно, чтобы отправить полученные sms в активность электронной почты, а затем отправить его по электронной почте (как резервная копия) – user3006788

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