从Android应用程序在特定设备上打开Goog​​le Play Market Link时出现问题

时间:2014-01-09 02:40:45

标签: android android-intent google-play

我有一个基本的Android应用程序,并在我的设置菜单中添加了一个项目,为用户提供了一个链接到我在Play商店的应用程序,以便他们可以轻松评价。

我的代码适用于我的所有设备(三星Galaxy S3,谷歌Nexus 7(2012),HTC One),但朋友三星Galaxy S2在点击设置项目时什么都不做。

请参阅下面的代码,提前感谢。


MainActivity.java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.settings, menu);
    return true;
}

public boolean rateApp (MenuItem item) { 
    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=manning.luke.glutenfreeingredients"));
    startActivity(browserIntent);
    return false;
}

将Settings.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:title="@string/rateApp"
        android:onClick="rateApp" >
    </item>    
</menu>

1 个答案:

答案 0 :(得分:1)

来自Menu Resource guideandroid:onClick仅在API级别11(Honeycomb)中添加 - 旧版本的Android将忽略此属性。

通常,您有一个菜单定义,如:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/rateApp" 
        android:title="@string/rateApp">
    </item>    
</menu>

然后使用onOptionsItemSelected(MenuItem)

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.rateApp:
            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(
                "market://details?id=manning.luke.glutenfreeingredients"));
            startActivity(browserIntent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}