ফোনে গুগল প্লে স্টোর অ্যাপ্লিকেশনটিতে "এই অ্যাপ্লিকেশনটিকে রেট করুন" -লিঙ্ক করুন


266

আমি তাদের ফোনে ব্যবহারকারীর গুগল প্লে স্টোর অ্যাপ্লিকেশনটিতে অ্যাপ-তালিকাটি খুলতে একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিতে "রেট এই অ্যাপ্লিকেশন" -লিংক রাখতে চাই।

  1. কি কোড তৈরি লিখতে আমি আছে market://বা http://-link ফোনে Google প্লে স্টোর অ্যাপ্লিকেশানে খুলবেন?
  2. আপনি কোডটি কোথায় রাখবেন?
  3. কারও কি এর নমুনা বাস্তবায়ন আছে?
  4. আপনাকে কী স্ক্রিনটি নির্দিষ্ট করতে হবে যেখানে market://বা http://লিঙ্কটি স্থাপন করা হবে এবং কোনটি ব্যবহার করা ভাল - market://বা http://?

এটিতে আপনার প্রয়োজনীয় সমস্ত কিছু রয়েছে: github.com/delight-im/appRater এবং এটি কীভাবে হয়েছে তা বুঝতে আপনি উত্স কোডটি সন্ধান করতে পারেন।
কাবা

উত্তর:


555

আমি নিম্নলিখিত কোড সহ আমার অ্যাপ্লিকেশন থেকে প্লে স্টোরটি খুলি:

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

এটি ইতিমধ্যে আপনার অ্যাপ্লিকেশন পৃষ্ঠাটি খোলার সাথে প্লে স্টোর চালু করবে। ব্যবহারকারী এটি সেখানে রেট দিতে পারে।


2
আমি এই কোডটি কোথায় রাখছি? আমার কি আর কিছু যুক্ত করার দরকার আছে? এটি কীভাবে কোনও স্ক্রিনে থাকা প্রকৃত লিঙ্ক বা বোতামের সাথে সামঞ্জস্য করে যা ব্যবহারকারী চাপায়? ধন্যবাদ
অ্যাড্রেনো

1
আপনাকে ম্যানিফেস্টে কোনও কোড যুক্ত করার দরকার নেই। আপনাকে কেবল এই কোডটি আপনার বোতাম / লিঙ্কের অনক্লিকলিস্টিনারের মধ্যে রাখতে হবে, তাই বোতামটি ক্লিক করা হলে কোডটি কার্যকর করা হয় এবং প্লে স্টোর চালু হয় is
মাইগুয়েল.রোডেলাস

61
এই সমাধানটি প্লে বাজারের ব্যাকস্ট্যাকের সাথে গণনা করা হয় না। পিছনে বোতাম টিপানোর পরে, আপনাকে আবার আপনার অ্যাপ্লিকেশনে নেওয়া হবে না। আপনি যদি এটি চান তবে এই লাইনটি যুক্ত করুন: intent.addFlags (ইনটেন্ট.এফএলজি_এসিটিভিটি_নোহস্তিরিস্ট | ইনটেন্ট .এফএলএজিএসিটিভিটি_স্লেয়ার_ডাব্লু_এসএকিভিসি | ইনটেন্ট .এফএলএজি_এসিটিভিটি_মুলটিআইপিএলএসএএসসি);
জান মুলার

24
উদ্দেশ্য.এফএলএজি_এসিটিভিটি_স্লেয়ার_উইএনএনএইচআইপিএসএসটি: এই ধ্রুবকটি 21 এপিআই স্তরে অবনতি হয়েছে API এপিআই 21 হিসাবে এটি FLAG_ACTIVITY_NEW_DOCUMENT এর সাথে একইভাবে কাজ করে যা এর পরিবর্তে ব্যবহার করা উচিত।
xgnyg

1
যদি অ-অ্যাক্টিভিটি জাভা ক্লাস থেকে কল করা হয় তবে আপনাকে প্রসঙ্গের মতো প্রসঙ্গটি পাস করতে হবে art স্টার্টঅ্যাক্টিভিটি (GoToMarket);
ডিএমুর

47

এখানে একটি কার্যকারী এবং আপ টু ডেট কোড রয়েছে :)

/*
* 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()ফাংশন কল করুন ।


আমার কোন নিউগেট প্যাকেজ যুক্ত করা উচিত, এবং একটি কার্যকরী ধরণের হওয়ার usingজন্য আমার কোন নেমস্পেস থাকা উচিত Intent? আমি দেখেছি Android.Content , কিন্তু আমি সঙ্গে লোকসানে আছি IntentXamarin ফর্মগুলিতে।
s3c

24

আমি সর্বদা এই কোডটি ব্যবহার করি:

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

4
সর্বদা একটি লাইনার পছন্দ করুন :) :)
অ্যান্ড্রয়েড স্টাড

আমি এটি ব্যবহার করি তবে এটি এই ত্রুটিটি দেখায়- roid android.content.ActivityNotFoundException: ইন্টেন্ট {অ্যাক্ট = অ্যান্ড্রয়েড.আইএনটি.অ্যাকশন.ভিউ ডেটা = মার্কেট: // বিশদ? আইডি = প্যাকেজনাম} `- আমি কী করতে পারি তা পরিচালনা করতে কোনও কার্যকলাপ পাওয়া যায়নি ?
মিনা দেশ

আপনি না পরীক্ষা করতে এই ?
ক্যাবেজাস

@Cabezas। উত্পন্নভাবে আমি ফোনে সমস্ত বিদ্যমান বাজার প্রদর্শন করতে চাই want তাদের মধ্যে ক্লিক করার সাথে সাথে, যদি আমার অ্যাপটি বিদ্যমান থাকে, বাজার অ্যাপটি দেখায়। তাহলে আমার কি করা উচিত?
মিনা দাহেশ

1
@Cabezas। আমি এই কোডটি ব্যবহার করি: `চেষ্টা করুন {ইন্টেন্ট ইন্টেন্ট = নতুন ইনটেন্ট (ইনটেন্ট.এ্যাকশন_ভিউ); intent.setData (Uri.parse ( "Bazaar: // বিস্তারিত আইডি = vow_note.maxsoft.com.vownote?")); intent.setData (Uri.parse ( "myket: // মন্তব্য আইডি = vow_note.maxsoft.com.vownote")); startActivity (অভিপ্রায়); } ধরা (ক্রিয়াকলাপ নটফাউন্ডএক্সেপশন ই 1) {চেষ্টা করুন {স্টার্টঅ্যাক্টিভিটি (নতুন ইনটেন্ট (ইনটেন্ট.এ্যাকশন_ভিউ, ইউরি.পার্স ("মার্কেট ইউআরএল"))); স্টার্টঅ্যাক্টিভিটি (নতুন ইনটেন্ট (ইন্টেন্ট। অ্যাকশন_ভিউ, ইউরি.পার্স ("মার্কেট ইউআরএল"))); } ধরা (ActivityNotFoundException E2) {টোস্ট} `।
মীনা Dahesh

18

এটি যদি আপনি গুগল প্লে স্টোর এবং অ্যামাজন অ্যাপস্টোর উভয় ক্ষেত্রেই আপনার অ্যাপ্লিকেশন প্রকাশ করেন। ব্যবহারকারীরা (বিশেষত চীন) অ্যাপ্লিকেশন স্টোর এবং ব্রাউজার উভয়ই না রাখার বিষয়টি আমিও পরিচালনা করি।

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

হাতে প্রশ্নের উত্তর দেয় না।

আপনার অ্যাপের অ্যামাজন অ্যাপ স্টোরের তালিকা খুলতে কোড সম্পর্কে কী বলা যায়?
isjulian00

আমার কোন নিউগেট প্যাকেজ যুক্ত করা উচিত, এবং একটি কার্যকরী ধরণের হওয়ার usingজন্য আমার কোন নেমস্পেস থাকা উচিত Intent? আমি দেখেছি Android.Content , কিন্তু আমি সঙ্গে লোকসানে আছি IntentXamarin ফর্মগুলিতে।
s3c

10

আপনি সর্বদা প্যাকেজম্যানেজার ক্লাস থেকে getInstalledPackages () কল করতে পারেন এবং বাজারের ক্লাসটি ইনস্টল রয়েছে কিনা তা নিশ্চিত করতে চেক করতে পারেন। আপনি ক্যোয়ারী ইনটেন্টিটিভিটিস () ব্যবহার করতে পারেন তৈরি করেন তা কোনও বাজারের অ্যাপ্লিকেশন না হলেও, আপনি যে তৈরি করেন তা কোনও কিছু দ্বারা পরিচালিত হতে সক্ষম হবে তা নিশ্চিত করতে আপনি করতে পারেন। এটি সম্ভবত সবচেয়ে ভাল কাজ কারণ এটি সবচেয়ে নমনীয় এবং শক্ত।

মার্কেট অ্যাপটি সেখানে রয়েছে কিনা তা আপনি পরীক্ষা করতে পারেন

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

যদি তালিকাটিতে কমপক্ষে একটি প্রবেশ থাকে, বাজার সেখানে আছে।

আপনার অ্যাপ্লিকেশনটির পৃষ্ঠায় অ্যান্ড্রয়েড মার্কেট চালু করতে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন, এটি কিছুটা বেশি স্বয়ংক্রিয়:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse("market://details?id=" + getPackageName()));
startActivity(i);

আপনি যদি নিজের এমুলেটরটিতে এটি পরীক্ষা করতে চান তবে সম্ভবত আপনার এটিতে বাজার ইনস্টল করা নেই: আরও তথ্যের জন্য এই লিঙ্কগুলি দেখুন:

গুগল অ্যান্ড্রয়েড এমুলেটরটিতে কীভাবে অ্যান্ড্রয়েড মার্কেট সক্ষম করবেন

অ্যান্ড্রয়েড এমুলেটরটিতে গুগল প্লে ইনস্টল করা হচ্ছে


আমি এই কোডটি কোথায় রাখছি? আমার কি আর কিছু যুক্ত করার দরকার আছে? এটি কীভাবে কোনও স্ক্রিনে থাকা প্রকৃত লিঙ্ক বা বোতামের সাথে সামঞ্জস্য করে যা ব্যবহারকারী চাপায়? ধন্যবাদ
অ্যাড্রেনো

8

আমি আমার অ্যাপ্লিকেশনকে আমার অ্যাপ্লিকেশন রেট দেওয়ার জন্য এই পদ্ধতির ব্যবহার করি:

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

এটা কিসের জন্য? - market://details?id=আমার অ্যাপ্লিকেশন লিঙ্কটি এরকমhttps:\\play.google.com\apps\details?id=
সাগর বালিয়ান

2
@ সাগরবলিয়ান, গুগল প্লে মার্কেট অ্যাপ্লিকেশনটিতে আপনার অ্যাপ পৃষ্ঠাটি খোলার জন্য এটি একটি বিশেষ ইউরি। যদি আপনি লিঙ্কটির সাথে ক্রিয়াকলাপটি শুরু করেন তবে আপনি সরবরাহ করেছেন অ্যান্ড্রয়েড আপনার অ্যাপ্লিকেশন পৃষ্ঠাটি ডিফল্ট ব্রাউজারে খুলবে বা কোন ব্রাউজার অ্যাপ্লিকেশনটি শুরু করতে চান তা চয়ন করবে
gtgray

5

একটি কোটলিন সংস্করণ

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

4

আপনি এটি ব্যবহার করতে পারেন, এটি আমার পক্ষে কাজ করে

public static void showRateDialogForRate(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) {
                        ////////////////////////////////
                        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_CLEAR_WHEN_TASK_RESET |
                                Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                        try {
                            context.startActivity(goToMarket);
                        } catch (ActivityNotFoundException e) {
                            context.startActivity(new Intent(Intent.ACTION_VIEW,
                                    Uri.parse("http://play.google.com/store/apps/details?id=" + context.getPackageName())));
                        }


                    }
                }
            })
            .setNegativeButton("CANCEL", null);
    builder.show();
}

4

স্টোর রেটিং খেলুন

 btn_rate_us.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Uri uri = Uri.parse("market://details?id=" + 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=" + getPackageName())));
                }
            }
        });

3

আপনার পক্ষে কার্যকর হতে পারে এমন আরেকটি পন্থা হ'ল লিঙ্কাইফাই। যদি আমার কাছে এমন একটি টেক্সটভিউ রয়েছে যা ব্যবহারকারীকে অ্যাপটি রেট করতে বলছে, আমি পাঠ্যে কয়েকটি শব্দ লিঙ্ক করতে পারি যাতে সেগুলি হাইলাইট হয় এবং ব্যবহারকারী যখন তাদের স্পর্শ করে, প্লে স্টোরটি খোলে, তাদের পর্যালোচনার জন্য প্রস্তুত:

class playTransformFilter implements TransformFilter {
   public String transformUrl(Matcher match, String url) {
        return "market://details?id=com.qwertyasd.yourapp";
   }
}

class playMatchFilter implements MatchFilter {
    public boolean acceptMatch(CharSequence s, int start, int end) {
        return true;
    }
}
text1 = (TextView) findViewById(R.id.text1);
text1.setText("Please rate it.");
final Pattern playMatcher = Pattern.compile("rate it");
Linkify.addLinks(text1, playMatcher, "", 
                   new playMatchFilter(), new playTransformFilter());

3

GetPackageName () কৌশলের উপর ভিত্তি করে বাস্তবায়ন রয়েছে এমন সমস্ত উত্তর সম্পর্কিত একটি বিষয় হ'ল বিল্ডকনফিগ.এপিপিএলিকেশন_আইডি ব্যবহার করা আরও সহজ হতে পারে এবং আপনি যদি বিভিন্ন অ্যাপ্লিকেশন আইডির সাথে একাধিক অ্যাপ্লিকেশন তৈরি করতে একই কোড বেস ব্যবহার করেন তবে উদাহরণস্বরূপ, হোয়াইট লেবেল পণ্য)।


2
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.support.annotation.StringRes;
import android.widget.Toast;

public class PlayStoreLink {

public void checkForUpdate(Context context, int applicationId) 
{
    try {
        context.startActivity(new Intent(Intent.ACTION_VIEW,
                Uri.parse(context.getString(R.string.url_market_details)
                        + applicationId)));
    } catch (android.content.ActivityNotFoundException anfe) {
        try {
            context.startActivity(new Intent(Intent.ACTION_VIEW,
                    Uri.parse(context.getString(R.string.url_playstore_app)
                            + applicationId)));
        } catch (Exception e) {
            Toast.makeText(context,
                    R.string.install_google_play_store,
                    Toast.LENGTH_SHORT).show();
        }
    }
}

public void moreApps(Context context, @StringRes int devName) {
    try {
        context.startActivity(new Intent(Intent.ACTION_VIEW,
                Uri.parse(context.getString(R.string.url_market_search_app)
                        + context.getString(devName))));
    } catch (android.content.ActivityNotFoundException anfe) {
        try {
            context.startActivity(new Intent(Intent.ACTION_VIEW,
                    Uri.parse(context.getString(R.string.url_playstore_search_app)
                            + context.getString(devName))));
        } catch (Exception e) {
            Toast.makeText(context,
                    R.string.install_google_play_store,
                    Toast.LENGTH_SHORT).show();
        }
    }
}

public void rateApp(Context context, int applicationId) {
    try {
        Uri uri = Uri.parse(context.getString(R.string.url_market_details)
                + applicationId);
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        int flags = Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH)
            flags |= Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
        else
            flags |= Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET;
        intent.addFlags(flags);
        context.startActivity(intent);
    } catch (ActivityNotFoundException e) {
        checkForUpdate(context, applicationId);
    }
}
}

<string name="install_google_play_store" translatable="false">Please install google play store and then try again.</string>
<string name="url_market_details" translatable="false">market://details?id=</string>
<string name="url_playstore_app" translatable="false">https://play.google.com/store/apps/details?id=</string>
<string name="url_market_search_app" translatable="false">market://search?q=pub:</string>
<string name="url_playstore_search_app" translatable="false">http://play.google.com/store/search?q=pub:</string>
<string name="app_link" translatable="false">https://play.google.com/store/apps/details?id=</string>

ডেভনাম প্লে স্টোরের বিকাশকারী অ্যাকাউন্টের নাম


2

আপনি আপনার ক্রিয়াকলাপে আপনার অ্যাপ্লিকেশনটিকে রেট দেওয়ার জন্য এই সাধারণ কোডটি ব্যবহার করতে পারেন।

try {
    Uri uri = Uri.parse("market://details?id=" + getPackageName());
    Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(goToMarket);
} catch (ActivityNotFoundException e) {
    startActivity(new Intent(Intent.ACTION_VIEW,
    Uri.parse("http://play.google.com/store/apps/details?id=" + getPackageName())));
}

এটা কিসের জন্য? - market://details?id=আমার অ্যাপ্লিকেশন লিঙ্কটি এরকমhttps:\\play.google.com\apps\details?id=
সাগর বালিয়ান

@ সাগরবলিয়ান যদি ব্যবহারকারীর একাধিক অ্যাপ বাজার থাকে তবে এটি ডিফল্ট স্টোরটি খুলবে বা উপলভ্য প্রতিটি স্টোরের জন্য তাদের লক্ষ্য দেখায়।
অবি দর্শণ

2

আমি ব্যতিক্রম ভিত্তিক প্রোগ্রামিং ব্যবহার না করেই এই এবং এই উত্তরটিকে একত্রিত করে নিম্নলিখিত পদ্ধতিটি ব্যবহার করি এবং প্রাক-এপিআই 21 21 অভিপ্রায়িত পতাকা সমর্থন করে।

@SuppressWarnings("deprecation")
private Intent getRateIntent()
{
  String url        = isMarketAppInstalled() ? "market://details" : "https://play.google.com/store/apps/details";
  Intent rateIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("%s?id=%s", url, getPackageName())));
  int intentFlags   = Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
  intentFlags      |= Build.VERSION.SDK_INT >= 21 ? Intent.FLAG_ACTIVITY_NEW_DOCUMENT : Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET;
  rateIntent.addFlags(intentFlags);
  return rateIntent;
}

private boolean isMarketAppInstalled()
{
  Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=anyText"));
  return getPackageManager().queryIntentActivities(marketIntent, 0).size() > 0;
}


// use
startActivity(getRateIntent());

অভিপ্রায়িত পতাকাটি FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETAPI 21 থেকে @SuppressWarnings("deprecation")অবহেলিত হওয়ায় আমি getRateIntent পদ্ধতিতে ট্যাগটি ব্যবহার করি কারণ আমার অ্যাপ্লিকেশন টার্গেট এসডিকে API 21 এর নীচে।


আমি তাদের ওয়েবসাইটে (ডিসেম্বর 6 2019 2019) এ প্রস্তাবিত সরকারী গুগল উপায়ও চেষ্টা করেছি । আমি যা দেখছি তাতে প্লে স্টোর অ্যাপটি ইনস্টল না করা থাকলে কেসটি হ্যান্ডেল করে না:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(
    "https://play.google.com/store/apps/details?id=com.example.android"));
intent.setPackage("com.android.vending");
startActivity(intent);

0

আপনার ক্রিয়াকলাপ শ্রেণিতে একটি পদ্ধতি ঘোষণা করুন। তারপরে নীচের কোডটি অনুলিপি করুন এবং পেস্ট করুন।

private void OpenAppInPlayStore(){

    Uri uri = Uri.parse("market://details?id=" + this.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=" + this.getPackageName())));
    }

}

এখন আপনার কোডের যে কোনও জায়গা থেকে এই পদ্ধতিটি কল করুন।

আমার ব্যবহারিক প্রকল্প থেকে নীচের চিত্র অনুসরণ করুন।

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.