Gmailを単純に開くアプリケーションを作成しようとしています。startApplicationとlaunchAppの2つの関数を使用します。
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");
このアプリケーションをエミュレーターとスマートフォンで実行しようとしましたが、プログラムがクラッシュします。エラーは何ですか?