Existe-t-il un moyen d'ouvrir l'activité de messagerie sur Android avec un SMS spécifique?Comment ouvrir un SMS spécifique dans Android
12
A
Répondre
9
threadId
devrait être l'id du SMS/MMS fil que vous voulez voir
Intent defineIntent = new Intent(Intent.ACTION_VIEW);
defineIntent.setData(Uri.parse("content://mms-sms/conversations/"+threadId));
myActivity.startActivity(defineIntent);
C'est la façon la plus simple que je trouve
2
Je l'ai trouvé hors de la source pour l'application de messagerie (lines 311-315), donc je suis sûr que cela fonctionnera, mais je n'ai aucune expérience avec elle.
// threadId should be the id of the sms/mms thread you want to view
long threadId = 0;
Intent i = new Intent("com.android.mms");
i.setData(
Uri.withAppendedPath(
i.getData(), Long.toString(threadId)
)
);
i.setAction(Intent.ACTION_VIEW);
+0
Je pense que 'ID de thread' est différent de 'sms id'? différents sms d'une même personne (chacun a son propre identifiant) peuvent avoir le même identifiant de thread. – n179911
4
Essayez cette
int req_thread_id;
Uri mSmsinboxQueryUri = Uri.parse("content://sms"));
Cursor cursor1 = getContentResolver().query(
mSmsinboxQueryUri,
new String[] { "_id", "thread_id", "address", "person", "date",
"body", "type" }, null, null, null);
startManagingCursor(cursor1);
if (cursor1.getCount() > 0)
{
while (cursor1.moveToNext())
{
int thread_id = cursor1.getInt(1);
String address; = cursor1.getString(cursor1
.getColumnIndex(columns[0]));
if("your desired no".equals(address)
req_thread_id = thread_id;
}
}
Intent defineIntent = new Intent(Intent.ACTION_VIEW);
defineIntent.setData(Uri.parse("content://mms-sms/conversations/"+req_thread_id));
myActivity.startActivity(defineIntent);
0
Cette L'extrait provient d'un commentaire de la réponse acceptée. Poster la méthode ici pour la postérité.
public static long findThreadIdFromAddress(Context context, String address) {
if (address == null)
return 0;
String THREAD_RECIPIENT_QUERY = "recipient";
Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
uriBuilder.appendQueryParameter(THREAD_RECIPIENT_QUERY, address);
long threadId = 0;
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(
uriBuilder.build(),
new String[] { Contacts._ID },
null, null, null);
if (cursor != null && cursor.moveToFirst()) {
threadId = cursor.getLong(0);
}
} finally {
if (cursor != null) {
cursor.close();
}
}
return threadId;
}
Questions connexes
- 1. Contenu SMS Android (contenu: // sms/envoyé)
- 2. Android: URL spéciale pour ouvrir Marketplace à une application spécifique?
- 3. Android 1.5: Lecture de messages SMS
- 4. Réception de messages SMS sous Android 1.6
- 5. Android SMS MMS compte en 1.5
- 6. Récupérer les messages SMS de la carte SIM avec android
- 7. Android: Envoi d'un courrier/SMS/Tweet avec Intent.ACTION_SEND/requestCode/resultCode?
- 8. Comment envoyer un SMS image?
- 9. Ouvrir GL ES sur Android: comment utiliser gluUnProject?
- 10. Comment puis-je créer une notification par e-mail/SMS animée sur un téléphone Android?
- 11. envoyer un SMS
- 12. Comment envoyer un SMS de groupe?
- 13. Intercepter les liens du navigateur pour ouvrir mon application Android
- 14. Comment envoyer un SMS depuis Java?
- 15. comment envoyer un sms en utilisant vs2003
- 16. Comment supprimer un contact programme dans Android
- 17. Comment utiliser un widget onglet dans Android?
- 18. Comment créer un affichage DataGrid dans Android?
- 19. Implémenter un RadioButtonPreference dans Android
- 20. Comment ouvrir un navigateur Web alternatif (Mozilla ou Firefox) et afficher l'URL spécifique?
- 21. Comment ouvrir un fichier PDF?
- 22. Comment puis-je lire des messages SMS à partir de l'appareil par programme sous Android?
- 23. Comment ouvrir un fichier "nul"?
- 24. Enregistrement d'une application pour ouvrir les liens web spécifique
- 25. Javascript force ouvrir un lien dans un navigateur
- 26. Comment puis-je faire une application Android automatiquement, quand un email arrive?
- 27. Support Flash dans Android
- 28. Comment créer un astérisque dans un EditText Android?
- 29. Comment piéger "ouvrir dans un nouvel onglet" clique dans jquery.click
- 30. Envoyer un SMS à un port mobile
Comment puis-je obtenir l'identifiant de thread d'un sms? – Janusz
Essayez de regarder la méthode findThreadIdFromAddress() ici: http://code.google.com/p/android-smspopup/source/browse/trunk/SMSPopup/src/net/everythingandroid/smspopup/SmsPopupUtils.java –
@paul_sns Dead lien. – VickyS