【发布时间】:2013-01-09 09:32:31
【问题描述】:
我正在尝试创建一个可以轻松打开 Gmail 的应用程序。我使用了两个函数:startApplication 和launchApp:
public void startApplication(String packageName){
try
{
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
List<ResolveInfo> resolveInfoList = getPackageManager().queryIntentActivities(intent, 0);
for(ResolveInfo info : resolveInfoList)
if(info.activityInfo.packageName.equalsIgnoreCase(packageName))
{
toast = Toast.makeText(MainActivity.this, "Gmail opened", Toast.LENGTH_LONG);
toast.show();
launchApp(info.activityInfo.packageName, info.activityInfo.name);
return;
}
}
catch (Exception e)
{
toast = Toast.makeText(MainActivity.this, "Can't find Gmail", Toast.LENGTH_LONG);
toast.show();
}
}
这是launchApp函数:
private void launchApp(String packageName, String name)
{
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
intent.setComponent(new ComponentName(packageName, name));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
我从 MainActivity 的 onCreate 函数调用
startApplication("com.gmail");
我尝试在模拟器和智能手机上运行此应用程序,但程序崩溃。错误是什么?
【问题讨论】:
-
你是要我们告诉错误。?你有 logcat,为什么不告诉我们错误。
-
我的 logcat 在 pastebin.com/cJutP0HJ
-
logcat 说错误在 com.polito.gmail.MainActivity 的第 15 行。请发布您的完整代码并提及第 15 行。
-
哦,在第 15 行我犯了一个大错误。我更正它并且应用程序不会崩溃,但它会在启动后冻结而没有错误。完整代码在pastebin.com/KEcYkit6
-
最后我解决了用 startApplication("com.google.android.gm") 改变 startApplication("com.gmail")