2013-03-01 5 views
3

Я использую ниже класс для rate моего приложения. Но каждый раз, когда я это делаю, он говорит: «Запрошенный элемент не найден». но ссылка < play.google.com/store/apps/details?id=com.xxx.xxx> отлично работает в браузере. Почему здесь не работает?не в состоянии оценить мое приложение

Еще одна вещь, я заметил, что если я изменю имя пакета на то же самое в другом приложении, он будет работать. Есть ли вероятность, что что-то могло быть пропущено при загрузке предыдущей версии?

public class apprater { 
private final static String APP_TITLE = "abcd"; 
private final static String APP_PNAME = "com.xxx.xxx"; 

private final static int DAYS_UNTIL_PROMPT = 3; 
private final static int LAUNCHES_UNTIL_PROMPT = 7; 

public static void app_launched(Context mContext) { 
    SharedPreferences prefs = mContext.getSharedPreferences("apprater", 0); 
    if (prefs.getBoolean("dontshowagain", false)) { return ; } 

    SharedPreferences.Editor editor = prefs.edit(); 

    // Increment launch counter 
    long launch_count = prefs.getLong("launch_count", 0) + 1; 
    editor.putLong("launch_count", launch_count); 

    // Get date of first launch 
    Long date_firstLaunch = prefs.getLong("date_firstlaunch", 0); 
    if (date_firstLaunch == 0) { 
     date_firstLaunch = System.currentTimeMillis(); 
     editor.putLong("date_firstlaunch", date_firstLaunch); 
    } 

    // Wait at least n days before opening 
    if (launch_count >= LAUNCHES_UNTIL_PROMPT) { 
     if (System.currentTimeMillis() >= date_firstLaunch + 
       (DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000)) { 
      showRateDialog(mContext, editor); 
     } 
    } 

    editor.commit(); 
} 

public static void showRateDialog(final Context mContext, final SharedPreferences.Editor editor) { 
    final Dialog dialog = new Dialog(mContext); 
    dialog.setTitle("Rate " + APP_TITLE); 

    LinearLayout ll = new LinearLayout(mContext); 
    ll.setOrientation(LinearLayout.VERTICAL); 

    TextView tv = new TextView(mContext); 
    tv.setText("If you enjoy using " + APP_TITLE + ", please take a moment to rate it. Thanks for your support!"); 
    tv.setWidth(240); 
    tv.setPadding(4, 0, 4, 10); 
    ll.addView(tv); 

    Button b1 = new Button(mContext); 
    b1.setText("Rate " + APP_TITLE); 
    b1.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME))); 
      System.out.println("eeeeeeeeeeeee: "+APP_PNAME); 
      dialog.dismiss(); 
     } 
    });   
    ll.addView(b1); 

    Button b2 = new Button(mContext); 
    b2.setText("Remind me later"); 
    b2.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      dialog.dismiss(); 
     } 
    }); 
    ll.addView(b2); 

    Button b3 = new Button(mContext); 
    b3.setText("No, thanks"); 
    b3.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      if (editor != null) { 
       editor.putBoolean("dontshowagain", true); 
       editor.commit(); 
      } 
      dialog.dismiss(); 
     } 
    }); 
    ll.addView(b3); 

    dialog.setContentView(ll);   
    dialog.show();   
} 
} 

Это то, что я использую сейчас:

public void onClick(View v) { 
       final String appName = APP_PNAME; 

       try 
       { 
        mContext.startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id=com.xxx.xxx"))); 


       } 
       catch (android.content.ActivityNotFoundException anfe) 
       {       
        mContext.startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://play.google.com/store/apps/details?id=com.xxx.xxx"))); 
       } 


       // mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME))); 


       dialog.dismiss(); 
      } 
+0

Вы используете 'рынок: //' ссылку, если вы используете 'play.google .com/store ... 'система предложит открыть его с помощью приложения Google Play. –

ответ

0

Попробуйте один

final String appName = getPackageName(); 

    try 
    { 
     startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("market://details?id="+ appName)));      
    } 
    catch (android.content.ActivityNotFoundException anfe) 
    {       
     startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://play.google.com/store/apps/details?id="+ appName))); 
    } 
+0

По-прежнему та же проблема. – 2013-03-01 12:17:35

+0

иногда он будет атаковать время, чтобы повлиять на мобильное устройство. Я столкнулся с такой же проблемой, когда удалил одно приложение из своей учетной записи разработчика и попытался увидеть в браузере, что сказал, что ничего не найдено, но когда я открылся в игровом магазине, используя ссылку на мобильном телефоне, тогда он был замечен и также может быть загружен. Таким образом, я думаю, что он больше времени уделяет влиянию в мобильном магазине воспроизведения, чем в браузере. –

+0

Но дело в том, что у меня есть мое приложение уже на рынке с именем пакета 'com.xxx.xxx', и я хочу добавить функцию рейтинга в более новую версию, которую планирую выпустить. – 2013-03-01 12:29:25

Смежные вопросы