2012-01-03 31 views

回答

3

试试这个..完美的作品..!

public void openInbox() { 
String application_name = "com.android.mms"; 
try { 
Intent intent = new Intent("android.intent.action.MAIN"); 
intent.addCategory("android.intent.category.LAUNCHER"); 

intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
List<ResolveInfo> resolveinfo_list = this.getPackageManager() 
.queryIntentActivities(intent, 0); 

for (ResolveInfo info : resolveinfo_list) { 
if (info.activityInfo.packageName 
.equalsIgnoreCase(application_name)) { 
launchComponent(info.activityInfo.packageName, 
info.activityInfo.name); 
break; 
} 
} 
} catch (ActivityNotFoundException e) { 
Toast.makeText(
this.getApplicationContext(), 
"There was a problem loading the application: " 
+ application_name, Toast.LENGTH_SHORT).show(); 
} 
} 

private void launchComponent(String packageName, String name) { 
Intent launch_intent = new Intent("android.intent.action.MAIN"); 
launch_intent.addCategory("android.intent.category.LAUNCHER"); 
launch_intent.setComponent(new ComponentName(packageName, name)); 
launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
this.startActivity(launch_intent); 
} 
1
String SMS_MIME_TYPE = "vnd.android-dir/mms-sms"; 

     Intent defineIntent = new Intent(Intent.ACTION_MAIN);     

     defineIntent.setType(SMS_MIME_TYPE);     

     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0 , defineIntent, 0); 

不知道它是否有效与否

+0

它不工作...! – Noby 2012-01-03 12:38:01

+0

是的,我没有把握。在旧问题中找到它,将其保存在我的文档中以备将来之用。 – 2012-01-03 12:39:35

+0

是啊这是我从哪里得到的问题:http://stackoverflow.com/questions/3608055/how-to-display-android-sms-inbox – 2012-01-03 12:42:37

1

短信内容提供商会给你所有SMS相关的数据。您正在讨论的屏幕由制造商使用该数据实施。所以你有两个选择来实现这一点:

1)使用相关内容提供商返回的光标,并创建自己的屏幕与所需的外观和感觉。

2)获取有关不同制造商(例如samsung have com.samsung.smsscreeen)消息屏幕包名称的信息,以及此类名称的lauch意图。为要添加的设备编写大小写语句。

+0

非常感谢您的回答。你可以请分享一个只能打开三星sms屏幕的代码。 – Noby 2012-01-03 12:32:20

相关问题