
Bu apiyi kullanabilmek için android sürümü minimum Android 5.0 (API 21) olması gerekiyor. Daha düşük sürümleri desteklemiyor. Basit bir methodla istediğiniz yerde review diyaloğunu gösterebilirsiniz. Kendi kullandığım kodları aşağıda vereceğim istediğiniz gibi kullanabilirsiniz.
Avantajları
- Mağaza gitmeye gerek duymadan kullanıcıdan değerlendirme alabiliyor.
- Normal oy ver dialoğuna göre çok daha etkili.
- Android 5'in altındaki sürümleri desteklemiyor. Eski telefonlara yönelik bir appniz varsa istediğiniz verimi alamazsınız.
- Review dialogunun gösteriminde kota var. Diyelim ki kullanıcıya dialogu bir kez gösterdiniz, kullanıcı oy vermedi ve dialogu kapattı. Bu durumda 2. sefer review dialogunun gösterileceğinin garantisi yok. Google kullanıcı deneyimi için bu kotayı kendi koymuş. Bu sorunun önüne geçmek için review dialogunu göstermeden önce kullanıcıya uygulamayı beğendiniz mi gibi bir soru sorarak tepkisini ölçmelisiniz.
Öncelikle gradle dosyasına Play Core Kütüphanesini eklemeniz gerekiyor.
dependencies
{ implementation 'com.google.android.play:core:1.8.0'}MainActivity kodları bu şekilde. Buradaki Review methodunu istediğiniz yerde çağırarak dialogu gösterebilirsiniz. Ben btnReview'e tıklandığında çağırdım.package com.awoapp.inappreview;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.google.android.play.core.review.ReviewInfo;
import com.google.android.play.core.review.ReviewManager;
import com.google.android.play.core.review.ReviewManagerFactory;
import com.google.android.play.core.tasks.OnCompleteListener;
import com.google.android.play.core.tasks.OnFailureListener;
import com.google.android.play.core.tasks.Task;
public class MainActivity extends AppCompatActivity {
ReviewInfo reviewInfo;
ReviewManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = ReviewManagerFactory.create(this);
findViewById(R.id.btnReview).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Review();
}
});
}
private void Review(){
manager.requestReviewFlow().addOnCompleteListener(new OnCompleteListener<ReviewInfo>() {
@Override
public void onComplete(@NonNull Task<ReviewInfo> task) {
if(task.isSuccessful()){
reviewInfo = task.getResult();
manager.launchReviewFlow(MainActivity.this, reviewInfo).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Toast.makeText(MainActivity.this, "Rating Failed", Toast.LENGTH_SHORT).show();
}
}).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(MainActivity.this, "Review Completed, Thank You! ", Toast.LENGTH_SHORT).show();
}
});
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Toast.makeText(MainActivity.this, "In-App Request Failed", Toast.LENGTH_SHORT).show();
}
});
}
}Benim uygulamamın çıktısı bu şekilde.
Kaynaklar
Google Play In-App Review API | Android Developers
Stackoverflow
Kullanıcının api seviyesini öğrenip ona göre işlem yaptırılabilir. Eğer yapabilirsem eklerim buraya.