3

ユーザーがクリックできるボタンがあり、GooglePlayストアのアプリページに送信されます。これは私がボタンに使用するコードです:

        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)

なぜそれがたまにしか機能しないのか、何か考えはありますか?

ありがとう!

4

3 に答える 3

5

あなたのソフトウェア用に少し違う 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");
    }
于 2012-05-18T03:14:11.470 に答える
3

これは、Android マーケット/Google Play がインストールされていないデバイスで発生します。実際にはかなりの数があり、特に安価なタブレットがそうです。これを防ぐために、マーケット/プレイ アプリがインストールされているかどうかのチェックの例外をキャッチできます。

ところで、Market/Play ストアでのみ配布している場合は、アプリが海賊版にされているか、誰かがルート化されたデバイスから削除して、新しい安価なタブレットまたはエミュレーターにプッシュした可能性があります。

于 2012-05-18T03:07:33.470 に答える
1
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);
}

これを試してみてください。アプリはクラッシュしませんが、例外が発生する可能性があります。

于 2012-05-18T03:04:18.953 に答える