如何打开并以编程方式显示手机的短信收件箱..?
问题描述:
当我们点击邮件时,我们会在收件箱中显示。如何打开并以编程方式显示手机的短信收件箱..?
我想单击我的应用程序按钮时显示相同的窗口。
因此,我想启动邮件收件箱活动。
如何实现这个...?
在此先感谢...!
答
试试这个..完美的作品..!
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);
}
答
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);
不知道它是否有效与否
答
短信内容提供商会给你所有SMS相关的数据。您正在讨论的屏幕由制造商使用该数据实施。所以你有两个选择来实现这一点:
1)使用相关内容提供商返回的光标,并创建自己的屏幕与所需的外观和感觉。
2)获取有关不同制造商(例如samsung have com.samsung.smsscreeen)消息屏幕包名称的信息,以及此类名称的lauch意图。为要添加的设备编写大小写语句。
+0
非常感谢您的回答。你可以请分享一个只能打开三星sms屏幕的代码。 – Noby 2012-01-03 12:32:20
它不工作...! – Noby 2012-01-03 12:38:01
是的,我没有把握。在旧问题中找到它,将其保存在我的文档中以备将来之用。 – 2012-01-03 12:39:35
是啊这是我从哪里得到的问题:http://stackoverflow.com/questions/3608055/how-to-display-android-sms-inbox – 2012-01-03 12:42:37