2010-07-27 9 views
9

Ho un'applicazione che invia messaggi a un contatto specificato. In questo momento io usoqual è la differenza tra ACTION_SENDTO e ACTION_VIEW quando si invia sms?

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("smsto:" + phoneNumber)); 

per inviare messaggi e funziona perfettamente sull'emulatore e sul mio N1. Ho ricevuto lamentele da parte degli utenti con HTC incredibile che ottengono la forza vicino dall'applicazione Android.mms quando lo usano. Ho fatto più ricerche e vedo che ci sono molti modi per inviare messaggi. Per esempio

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + phoneNumber)); 

E anche

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.putExtra("address", phoneNumber); 
intent.setType("vnd.android-dir/mms-sms"); 

Tutti sembrano funzionare esattamente lo stesso sul emulatore e sul mio dispositivo, e non ho trovato nulla di ufficiale il modo corretto, generalmente sostenuto. Qualche idea?

+1

Stai inviando un messaggio e non VISUALIZZANDO; semplice come quella! :) –

+0

Mi aspetterei almeno il thread con il numero visualizzato. Non una forza chiusa dall'applicazione dei messaggi. – shoren

risposta

-1

Proverò a vedere come l'hanno fatto sullo Contacts apps.

In passato ho avuto molti problemi di compatibilità con l'HTC Hero. Ho sempre finito per scrivere il codice che funzionava sui telefoni con l'interfaccia utente Sense. Ho scoperto che se il codice funziona lì, funzionerebbe su ogni dispositivo Android :).

3

L'intento descrive il tuo intento. Che cosa vuoi fare? Controlla la documentazione su Intent http://developer.android.com/reference/android/content/Intent.html

Nel tuo caso, vuoi inviare qualcosa, quindi ACTION_SENDTO suona sicuramente molto più appropriato di ACTION_VIEW (che viene utilizzato per visualizzare un record esistente).

Sfortunatamente, non esiste un registro ufficiale per quali intenti sono disponibili - i ragazzi senza paura di OpenIntents hanno iniziato un registro in stile Wiki allo http://www.openintents.org/en/intentstable, ma è crowdsourcing e molto incompleto. Alla fine, si tratta di come l'applicazione che supporta l'intento lo gestisce.

Nel tuo caso, l'applicazione di messaggistica Android standard è in grado di gestire ACTION_VIEW, ma l'app personalizzata di HTC no. Il mio miglior consiglio è usare ACTION_SENDTO, e gestire un'eccezione e mostrare un messaggio di errore. Ricorda che l'utente potrebbe aver installato app SMS di terze parti.

Problemi correlati