我有一个按钮,用户可以点击该按钮,将他们发送到Google Play商店中的应用页面。这是我用于按钮的代码:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.problemio"));
startActivity(intent);
包裹在这里:https://play.google.com/store/apps/details?id=com.problemio
有时它工作正常,但有时我会收到这样的崩溃报告:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.problemio }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
at android.app.Activity.startActivityForResult(Activity.java:2833)
at android.app.Activity.startActivity(Activity.java:2959)
at com.problemio.content.BusinessIdeasActivity$5.onClick(BusinessIdeasActivity.java:107)
at android.view.View.performClick(View.java:2538)
at android.view.View$PerformClick.run(View.java:9152)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3691)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)
知道为什么它只是有时有效吗?
谢谢!
我会为您的软件尝试一些不同的 URL:
Uri uri = Uri.parse("market://search?q=pname:com.problemio");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
try {
this.startActivity(intent);
} catch (ActivityNotFoundException anfe) {
// Hmm, market is not installed
Log.w(TAG, "Android Market is not installed");
}
这将发生在没有安装Android Market/Google Play的设备上。实际上有很多,尤其是便宜的平板电脑。您可以捕获检查是否安装了市场/播放应用程序的异常,以防止这种情况发生。
顺便说一句,如果您只在市场/Play商店分发,那么您的应用程序可能是盗版的,或者有人只是将其从他们的root设备上取出并将其推送到他们的新el cheapo平板电脑或模拟器上。
try{
Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse("https://market.android.com/details?id=com.problemio"));
startActivity(viewIntent);
}catch (ActivityNotFoundException activityException) {
Log.e("helloandroid", "Call failed",activityException);
}
试试这个,现在你的应用程序不会崩溃,但可能会有异常。