从PreferenceActivity启动Android Play商店应用程序?

时间:2012-08-21 16:01:36

标签: java android sharedpreferences android-preferences preferenceactivity

我正在尝试启动 Android Play商店

来自我的 PreferenceActivity

这是我试图做的代码

在我的pref.xml文件中

<Preference  android:key="rateus" android:title="See Android Market"></Preference>

在我的java文件中

public class ExampleAppWidgetConfigure extends PreferenceActivity {

private int appWidgetId;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getPreferenceManager().setSharedPreferencesName(
            widgetsharedpref.PREFS_NAME);
    addPreferencesFromResource(R.xml.prefs);

    Preference prefereces=findPreference("rateus");
    prefereces.setIntent(new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id=com.xyz.xyz")));


}

}

但是当我运行它并点击Preference时。

什么都没发生。

这里有什么问题?

2 个答案:

答案 0 :(得分:4)

您的代码没有启动市场活动,只会创建启动它的意图

使用此

Preference prefereces=findPreference("rateus");
preference.setOnPreferenceClickListener (new Preference.OnPreferenceClickListener(){
    public boolean onPreferenceClick(Preference preference){
        Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id=com.xyz.xyz"));
        startActivity(intent);
        return false;
    }
});

答案 1 :(得分:4)

虽然vikki的答案很好,但这里还是简化版的做法。它只会使用指定的应用详情启动Play商店应用。

<PreferenceScreen
    android:title="Rate My app on Play Store"
    android:summary="Please take a moment to rate our application and service on play store.">
    <intent
        android:action="android.intent.action.VIEW"
        android:data="market://details?id=com.abc.xyz" />
</PreferenceScreen>

备用版本更安全一些。只需将android:data属性替换为原始的Play商店应用链接。

android:data="http://play.google.com/store/apps/details?id=com.abc.xyz"

它基本上尝试加载Playstore URL。即使未安装Play商店应用程序,这个也可以使用。唯一的问题是,安装的浏览器将与Play商店应用程序一起捕获意图。