휴대 전화에서 사용자의 Google Play 스토어 앱에서 앱 목록을 열려면 Android 앱에 ‘이 앱 평가’링크를 추가하고 싶습니다.
- 휴대 전화의 Google Play 스토어 앱에서
market://
또는http://
링크를 열 려면 어떤 코드를 작성해야 하나요? - 코드를 어디에 넣습니까?
- 누구든지 이것에 대한 샘플 구현이 있습니까?
- 당신은 화면 지정해야합니까
market://
또는http://
링크가 배치됩니다 및 사용에 가장 잘입니다 –market://
나http://
?
답변
다음 코드를 사용하여 앱에서 Play 스토어를 엽니 다.
Uri uri = Uri.parse("market://details?id=" + context.getPackageName());
Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
// To count with Play market backstack, After pressing back button,
// to taken back to our application, we need to add following flags to intent.
goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY |
Intent.FLAG_ACTIVITY_NEW_DOCUMENT |
Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://play.google.com/store/apps/details?id=" + context.getPackageName())));
}
앱 페이지가 이미 열려있는 상태에서 Play 스토어가 시작됩니다. 사용자는 그곳에서 평가할 수 있습니다.
답변
작동하고 최신 코드는 다음과 같습니다. 🙂
/*
* Start with rating the app
* Determine if the Play Store is installed on the device
*
* */
public void rateApp()
{
try
{
Intent rateIntent = rateIntentForUrl("market://details");
startActivity(rateIntent);
}
catch (ActivityNotFoundException e)
{
Intent rateIntent = rateIntentForUrl("https://play.google.com/store/apps/details");
startActivity(rateIntent);
}
}
private Intent rateIntentForUrl(String url)
{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("%s?id=%s", url, getPackageName())));
int flags = Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
if (Build.VERSION.SDK_INT >= 21)
{
flags |= Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
}
else
{
//noinspection deprecation
flags |= Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET;
}
intent.addFlags(flags);
return intent;
}
Activity
호출하고자 하는 곳에 코드를 넣으십시오 .
사용자가 버튼을 클릭하여 앱을 평가하면 rateApp()
함수를 호출하기 만하면 됩니다.
답변
나는 항상이 코드를 사용한다 :
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=PackageName")));
답변
Google Play 스토어와 Amazon Appstore 모두에 앱을 게시하는 경우입니다. 또한 사용자 (특히 중국)에 앱 스토어와 브라우저가 모두없는 경우도 처리합니다.
public void goToMyApp(boolean googlePlay) {//true if Google Play, false if Amazone Store
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse((googlePlay ? "market://details?id=" : "amzn://apps/android?p=") +getPackageName())));
} catch (ActivityNotFoundException e1) {
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse((googlePlay ? "http://play.google.com/store/apps/details?id=" : "http://www.amazon.com/gp/mas/dl/android?p=") +getPackageName())));
} catch (ActivityNotFoundException e2) {
Toast.makeText(this, "You don't have any app that can open this link", Toast.LENGTH_SHORT).show();
}
}
}
답변
항상 PackageManager 클래스 에서 getInstalledPackages () 를 호출 하고 마켓 클래스가 설치되어 있는지 확인할 수 있습니다. queryIntentActivities ()를 사용할 수도 있습니다. 를 사용하여 마켓 애플리케이션이 아닌 경우에도 생성 한 인 텐트가 무언가에 의해 처리 될 수 있도록 할 수 있습니다. 가장 유연하고 강력하기 때문에 실제로 수행하는 것이 가장 좋습니다.
마켓 앱이 있는지 확인할 수 있습니다.
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://search?q=foo"));
PackageManager pm = getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
목록에 하나 이상의 항목이 있으면 마켓이있는 것입니다.
다음을 사용하여 애플리케이션 페이지에서 Android 마켓을 시작할 수 있습니다. 조금 더 자동화되어 있습니다.
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("market://details?id=" + getPackageName()));
startActivity(i);
에뮬레이터에서 이것을 테스트하려면 시장이 설치되어 있지 않을 것입니다. 자세한 내용은 다음 링크를 참조하십시오.
Google Android 에뮬레이터에서 Android 마켓을 활성화하는 방법
답변
이 방법을 사용하여 사용자가 내 앱을 평가하도록합니다.
public static void showRateDialog(final Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setTitle("Rate application")
.setMessage("Please, rate the app at PlayMarket")
.setPositiveButton("RATE", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (context != null) {
String link = "market://details?id=";
try {
// play market available
context.getPackageManager()
.getPackageInfo("com.android.vending", 0);
// not available
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
// should use browser
link = "https://play.google.com/store/apps/details?id=";
}
// starts external action
context.startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse(link + context.getPackageName())));
}
}
})
.setNegativeButton("CANCEL", null);
builder.show();
}
답변
코 틀린 버전
fun openAppInPlayStore() {
val uri = Uri.parse("market://details?id=" + context.packageName)
val goToMarketIntent = Intent(Intent.ACTION_VIEW, uri)
var flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_MULTIPLE_TASK
flags = if (Build.VERSION.SDK_INT >= 21) {
flags or Intent.FLAG_ACTIVITY_NEW_DOCUMENT
} else {
flags or Intent.FLAG_ACTIVITY_CLEAR_TASK
}
goToMarketIntent.addFlags(flags)
try {
startActivity(context, goToMarketIntent, null)
} catch (e: ActivityNotFoundException) {
val intent = Intent(Intent.ACTION_VIEW,
Uri.parse("http://play.google.com/store/apps/details?id=" + context.packageName))
startActivity(context, intent, null)
}
}