2011-08-01 15 views
15

Şu anda Android'de bir uygulama geliştiriyorum Şu anki uygulamayı değerlendirmek için kullanıcıya bazı işlevler vermek istiyorum. Onların üzerinde bir düğme olacak, kullanıcının uygulamayı değerlendirmek isteyip istemediğini sorup sormayacak mı? Evet uygulama (Market bu uygulamayı göstermelidir.) Ya da bu uygulamayı gösteren pazara & yükleyecek tarayıcıyı açacak şekilde cihazdaki piyasa uygulamasına gidecektir. Daha önce bu tür işlevleri kullandı. Lütfen biraz yardım verin.Pazarda oylamak için uygulamayı kullanın

Teşekkür ederiz.

cevap

40

Hep böyle bir yöntemi kullanın:

private void launchMarket() { 
    Uri uri = Uri.parse("market://details?id=" + getPackageName()); 
    Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); 
    try { 
     startActivity(goToMarket); 
    } catch (ActivityNotFoundException e) { 
     Toast.makeText(this, R.string.couldnt_launch_market, Toast.LENGTH_LONG).show(); 
    } 
} 
+1

@Cristian --- Hızlı cevap için teşekkürler .. Sadece bir sorgu-- getPackageName() yerine uygulama paketimi sağlamalı mıyım? Ayrıca, cihazın pazar uygulamasının olup olmadığını algılamaya ihtiyacım var mı? Genel cihazda olması gerekir ama kullanıcı çıkarsa Yani piyasa uygulaması nasıl kontrol edilir veya mevcut değil? –

+1

http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29 Hayır, paket adını sizin için alır. Hiçbir piyasa uygulaması yüklü değilse ve bir tost görüntülerse bu bir istisna atar. – Rob

+0

Teşekkürler Cristian ... –

2
public class AppRater { 
private final static String APP_TITLE = "App Name";// App Name 
private final static String APP_PNAME = "com.example.name";// Package Name 

private final static int DAYS_UNTIL_PROMPT = 3;//Min number of days 
private final static int LAUNCHES_UNTIL_PROMPT = 3;//Min number of launches 

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))); 
      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();   
}} 

Şimdi bu gibi aktiviteye sınıfı entegre ->

AppRater.app_launched(this); 
+2

Kullanıcının zaten bize puan vermiş olup olmadığından nasıl emin olabiliriz ??? –

+0

Kullanım sadece bizim app ziyaret değil ... derecelendirme nasıl ele alınır? –

İlgili konular