2014-10-01 53 views
1

我需要找到所有可以打開短信的應用程序(安裝的)。我已經通過以下方法找到了Gallery應用程序:需要找到所有的消息應用程序在Android

PackageManager pm = getPackageManager(); 
Intent newIntent = new Intent(Intent.ACTION_VIEW); 
newIntent.setType("image/*"); 
allApps = pm.queryIntentActivities(newIntent, PackageManager.MATCH_DEFAULT_ONLY); 

它給出了所有可打開圖像的應用程序的列表。有沒有類似的方式可以找到所有可以打開短信的應用程序?

+0

NO..he不希望應用程序,它可以發送SMS..not *安裝的所有應用程序*名單@Abdellah – 2014-10-01 09:03:55

回答

0
Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_DEFAULT); 
intent.setType("vnd.android-dir/mms-sms"); 
startActivity(intent); 
1

您需要設置一組類型vnd.android-dir/mms-sms

試試這個代碼:

Uri uri = Uri.parse("smsto:123456789"); 
Intent intent = new Intent(Intent.ACTION_SENDTO, uri); 
intent.putExtra("sms_body", "SMS text"); 

OR

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

跳上它會幫助你:)

+0

@SweetWicher:你的第一個代碼給我最接近的結果,但它顯示了Viber的WhatsApp的和也......但這些應用程序使用互聯網發送消息...不是短信。具體而言,我只需要SMS應用程序比如默認Messaging App和Google Hangouts等。 – Faheem 2014-10-01 09:53:22

0

嘗試這個?

Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_VIEW); 
sendIntent.putExtra(Intent.EXTRA_TEXT,"Your Text"); 
sendIntent.setData(Uri.parse("sms:")); 
startActivity(sendIntent);