我正在开发我的应用以启动另一个应用。它的工作非常完美。但是当我启动一个手机应用程序(通话记录)时,它很快停止了。这是一个系统应用程序。 这是我启动新应用程序的代码。
Intent launchIntent = getActivity().getPackageManager().getLaunchIntentForPackage("com.android.phone");
startActivity(launchIntent);
Logcat输出
05-07 15:27:30.878: E/AndroidRuntime(22352): FATAL EXCEPTION: main
05-07 15:27:30.878: E/AndroidRuntime(22352): Process: com.demo.applicationbackup, PID: 22352
05-07 15:27:30.878: E/AndroidRuntime(22352): java.lang.NullPointerException
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1484)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.app.Activity.startActivityForResult(Activity.java:3436)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.app.Activity.startActivityForResult(Activity.java:3393)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:848)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.support.v4.app.Fragment.startActivity(Fragment.java:878)
05-07 15:27:30.878: E/AndroidRuntime(22352): at web.revolution.applicationbackup.MainActivity$PlaceholderFragment$4.onClick(MainActivity.java:182)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.view.View.performClick(View.java:4456)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.view.View$PerformClick.run(View.java:18462)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.os.Handler.handleCallback(Handler.java:733)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.os.Handler.dispatchMessage(Handler.java:95)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.os.Looper.loop(Looper.java:136)
05-07 15:27:30.878: E/AndroidRuntime(22352): at android.app.ActivityThread.main(ActivityThread.java:5102)
05-07 15:27:30.878: E/AndroidRuntime(22352): at java.lang.reflect.Method.invokeNative(Native Method)
05-07 15:27:30.878: E/AndroidRuntime(22352): at java.lang.reflect.Method.invoke(Method.java:515)
05-07 15:27:30.878: E/AndroidRuntime(22352): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
05-07 15:27:30.878: E/AndroidRuntime(22352): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
05-07 15:27:30.878: E/AndroidRuntime(22352): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:2)
您可以使用更好的Intent
来打开通话记录,而不是使用包管理器启动原生手机应用。试试这个:
Intent i = new Intent(Intent.ACTION_VIEW, CallLog.Calls.CONTENT_URI);
startActivity(i);
希望它有所帮助。