2012-02-13 15 views
2

我想爲我的應用程序創建一個反饋字段。我只是想將用戶重定向到市場這樣android Intent.ACTION_VIEW崩潰時的通話市場URL

String APP_MARKET_URL = "market://details?id=com.my.application"; 

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(APP_MARKET_URL)); 
this.startActivity(intent); 

但是,當我執行它,我有這樣的錯誤:

02-13 11:07:33.147: W/dalvikvm(238): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
02-13 11:07:33.155: E/AndroidRuntime(238): Uncaught handler: thread main exiting due to uncaught exception 
02-13 11:07:33.225: E/AndroidRuntime(238): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.picca.pointage.NoterApplication } 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.app.Activity.startActivityForResult(Activity.java:2749) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.app.Activity.startActivity(Activity.java:2855) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.preference.Preference.performClick(Preference.java:829) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:190) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.widget.ListView.performItemClick(ListView.java:3285) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.os.Handler.handleCallback(Handler.java:587) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.os.Looper.loop(Looper.java:123) 
02-13 11:07:33.225: E/AndroidRuntime(238): at android.app.ActivityThread.main(ActivityThread.java:4363) 
02-13 11:07:33.225: E/AndroidRuntime(238): at java.lang.reflect.Method.invokeNative(Native Method) 
02-13 11:07:33.225: E/AndroidRuntime(238): at java.lang.reflect.Method.invoke(Method.java:521) 
02-13 11:07:33.225: E/AndroidRuntime(238): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
02-13 11:07:33.225: E/AndroidRuntime(238): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
02-13 11:07:33.225: E/AndroidRuntime(238): at dalvik.system.NativeStart.main(Native Method) 

我使用Android 1.5。我沒有在清單中加入具體的條目。 任何人有一個想法或其他方法打電話給我的市場頁面?

+0

是您的活動NoterApplication註冊的在清單文件中? – 2012-02-13 11:19:23

+0

您是否聲明瞭清單文件中的權限 – arpit 2012-02-13 11:19:59

+0

您是否完全確定自己在此展示了您展示的意圖? 'act = com.picca.pointage.NoterApplication'表明引起崩潰的意圖有一個完全不同的動作*(不是VIEW動作)*。 – 2012-02-13 11:23:55

回答

0

如果您在模擬器上運行此代碼,您應該知道模擬器上沒有Android Market應用程序,因此它會拋出此異常。大多數真實設備應該沒有問題。希望這可以幫助。

+0

是的,它會在模擬器上崩潰,但不會在設備上崩潰!謝謝! – Julien 2012-02-14 18:01:54

+1

我知道這是一箇舊的答案,但我不確定它是否完整。有一些沒有市場的安卓設備(如kindle fire),所以你必須首先檢查一下,如果有人可以在開始之前收到你的意圖。 – Raz 2012-05-23 08:32:09

1

嘗試添加以下單元到您的意圖。

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

3

擴展在以前的評論,你可以使用這樣的代碼開始一個新的活動與前檢查,如果意圖可以在設備上得到解決:

PackageManager pm = context.getPackageManager(); 
    ComponentName cn = intent.resolveActivity(pm); 
    if (cn != null) { 
     this.startActivity(intent); 
    }