如何从我的应用程序打开谷歌日历应用程序?

时间:2014-04-30 07:21:23

标签: android android-intent calendar

我想从我的应用中打开Goog​​le日历应用。我有以下代码,但它崩溃了:

if (Utils.isPackageInstalled(PACKAGENAME,getApplicationContext())) {
    intent = new Intent(Intent.ACTION_VIEW, Uri.parse( "com.android.calendar"));
    startActivity(intent);
}

logcat的:

04-30 09:14:29.156: E/AndroidRuntime(21225): FATAL EXCEPTION: main
04-30 09:14:29.156: E/AndroidRuntime(21225): Process: com.am, PID: 21225
04-30 09:14:29.156: E/AndroidRuntime(21225): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=com.android.calendar }
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.app.Activity.startActivityForResult(Activity.java:3424)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.app.Activity.startActivityForResult(Activity.java:3385)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:839)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.app.Activity.startActivity(Activity.java:3627)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.app.Activity.startActivity(Activity.java:3595)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at com.amexbarcelo.activity.RootActiveTravel$4.onClick(RootActiveTravel.java:147)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.os.Handler.dispatchMessage(Handler.java:102)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.os.Looper.loop(Looper.java:136)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at android.app.ActivityThread.main(ActivityThread.java:5017)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at java.lang.reflect.Method.invokeNative(Native Method)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at java.lang.reflect.Method.invoke(Method.java:515)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-30 09:14:29.156: E/AndroidRuntime(21225):    at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:4)

不建议在启动意图中使用第三方应用程序的程序包名称。您必须指定Action和URI,并让系统找到最好的应用程序来处理请求。

  1. Android Docs on using Calendar Intent
  2. How to use Calendar Intent?
  3. What You Need to Know About the Intents of Android’s Calendar App