কীভাবে সরাসরি আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে গুগল প্লে স্টোর খুলবেন?


569

আমি নিম্নলিখিত কোডটি ব্যবহার করে গুগল প্লে স্টোরটি খুলেছি

Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=my packagename "));
startActivity(i);.

তবে এটি বিকল্প (ব্রাউজার / প্লে স্টোর) নির্বাচন করতে আমাকে একটি সম্পূর্ণ অ্যাকশন ভিউ দেখায়। আমার সরাসরি প্লে স্টোরে অ্যাপ্লিকেশনটি খুলতে হবে।


উত্তর:


1436

আপনি market://উপসর্গ ব্যবহার করে এটি করতে পারেন ।

final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}

আমরা try/catchএখানে একটি ব্লক ব্যবহার করি কারণ Exceptionলক্ষ্য ডিভাইসে প্লে স্টোরটি ইনস্টল না করা থাকলে একটি নিক্ষিপ্ত হবে।

দ্রষ্টব্য : যে কোনও অ্যাপ্লিকেশন market://details?id=<appId>উরি পরিচালনা করতে সক্ষম হিসাবে নিবন্ধন করতে পারে , আপনি যদি বিশেষত গুগল প্লে লক্ষ্য করতে চান তবে বের্কের উত্তরটি পরীক্ষা করে দেখুন


53
আপনি যদি সমস্ত বিকাশকারীর অ্যাপ্লিকেশন ব্যবহারগুলিতে পুনর্নির্দেশ করতে চান market://search?q=pub:"+devNameএবংhttp://play.google.com/store/search?q=pub:"+devName
স্টেফানো মুনারিনি

4
এই সমাধানটি কার্যকর হয় না, যদি কিছু অ্যাপ্লিকেশন "মার্কেট: //" স্কিম সংজ্ঞায়িত করে উদ্দেশ্য ফিল্টার ব্যবহার করে। কীভাবে গুগল প্লে খুলবেন এবং কেবলমাত্র গুগল প্লে অ্যাপ্লিকেশনটি (বা জিপি উপস্থিত না থাকলে ওয়েব ব্রাউজার) কীভাবে আমার উত্তর দেখুন। :-)
বের্ক

18
গ্র্যাডল বিল্ড সিস্টেম ব্যবহার করে প্রকল্পের জন্য, appPackageNameআসলে BuildConfig.APPLICATION_ID। না Context/ Activityনির্ভরতা, মেমরি ফাঁসের ঝুঁকি হ্রাস করে।
খ্রিস্টান গার্সিয়া

3
অভিপ্রায়টি চালু করতে আপনার এখনও প্রসঙ্গের প্রয়োজন। Context.startActivity ()
wblaschko

2
এই সমাধানটি ধরে নিয়েছে যে কোনও ওয়েব ব্রাউজার খোলার উদ্দেশ্য রয়েছে। এটি সর্বদা সত্য নয় (অ্যান্ড্রয়েড টিভি এর মতো) তাই সাবধান হন। কী করতে হবে তা নির্ধারণ করতে আপনি ইন্টেন্ট.রেসভলঅ্যাক্টিভিটি (getPackageManager ()) ব্যবহার করতে চাইতে পারেন।
চোদা

161

এখানে অনেক উত্তর গুগল প্লে খোলার জন্য ব্যবহার করার পরামর্শ দেয় Uri.parse("market://details?id=" + appPackageName)) তবে আমি মনে করি এটি অপ্রতুল বাস্তবে :

কিছু তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলি "market://"স্কিম সংজ্ঞায়িত করে নিজস্ব ইন্টেন্ট-ফিল্টার ব্যবহার করতে পারে , সুতরাং তারা গুগল প্লেয়ের পরিবর্তে সরবরাহ করা উরি প্রক্রিয়া করতে পারে (উদাহরণস্বরূপ, আমি এই পরিস্থিতিটি স্প্যানিপপি অ্যাপ্লিকেশন সহ অনুভব করেছি)। প্রশ্নটি "গুগল প্লে স্টোরটি কীভাবে খুলবেন?", তাই আমি ধরে নিলাম যে আপনি অন্য কোনও অ্যাপ্লিকেশন খুলতে চান না। দয়া করে নোট করুন, যেমন অ্যাপ্লিকেশন রেটিংটি কেবলমাত্র জিপি স্টোর অ্যাপ্লিকেশন ইত্যাদিতেই প্রাসঙ্গিক ...

গুগল প্লে এবং শুধুমাত্র গুগল প্লে খোলার জন্য আমি এই পদ্ধতিটি ব্যবহার করি:

public static void openAppRating(Context context) {
    // you can also use BuildConfig.APPLICATION_ID
    String appId = context.getPackageName();
    Intent rateIntent = new Intent(Intent.ACTION_VIEW,
        Uri.parse("market://details?id=" + appId));
    boolean marketFound = false;

    // find all applications able to handle our rateIntent
    final List<ResolveInfo> otherApps = context.getPackageManager()
        .queryIntentActivities(rateIntent, 0);
    for (ResolveInfo otherApp: otherApps) {
        // look for Google Play application
        if (otherApp.activityInfo.applicationInfo.packageName
                .equals("com.android.vending")) {

            ActivityInfo otherAppActivity = otherApp.activityInfo;
            ComponentName componentName = new ComponentName(
                    otherAppActivity.applicationInfo.packageName,
                    otherAppActivity.name
                    );
            // make sure it does NOT open in the stack of your activity
            rateIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            // task reparenting if needed
            rateIntent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            // if the Google Play was already open in a search result
            //  this make sure it still go to the app page you requested
            rateIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            // this make sure only the Google Play app is allowed to
            // intercept the intent
            rateIntent.setComponent(componentName);
            context.startActivity(rateIntent);
            marketFound = true;
            break;

        }
    }

    // if GP not present on device, open web browser
    if (!marketFound) {
        Intent webIntent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("https://play.google.com/store/apps/details?id="+appId));
        context.startActivity(webIntent);
    }
}

মুল বক্তব্যটি হ'ল গুগল প্লে-এর পাশের আরও অ্যাপ্লিকেশনগুলি যখন আমাদের অভিপ্রায়টি খুলতে পারে, অ্যাপ্লিকেশন-চয়নকারী ডায়ালগটি এড়িয়ে যায় এবং জিপি অ্যাপ্লিকেশন সরাসরি শুরু হয়।

আপডেট: কখনও কখনও মনে হয় এটি কেবল জিপি অ্যাপ্লিকেশনটি খোলে, অ্যাপ্লিকেশনটির প্রোফাইলটি না খোলা। ট্রেভরভিলে যেমন তাঁর মন্তব্যে পরামর্শ দিয়েছেন, Intent.FLAG_ACTIVITY_CLEAR_TOPসমস্যাটি সমাধান করতে পারেন। (আমি নিজে নিজে এটি পরীক্ষা করিনি ...)

কি করে তা বোঝার জন্য এই উত্তরটি দেখুন Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED


4
এটি ভাল হলেও এটি বর্তমান গুগল প্লে বিল্ডের সাথে অবিশ্বাস্য বলে মনে হয়, আপনি যদি গুগল প্লেতে অন্য অ্যাপ্লিকেশন পৃষ্ঠাতে প্রবেশ করেন তবে এই কোডটি ট্রিগার করুন, এটি কেবল গুগল প্লে খুলবে তবে আপনার অ্যাপে যাবে না।
জুলটিশ

2
@ জোলেটিশ, আমি ফ্ল্যাগগুলিতে ইন্টেন্ট.এফএলএজি_এসিটিভিটি_ক্লেয়ার_টপ যুক্ত করেছি এবং এটি সমস্যার সমাধান করতে পারে বলে মনে হচ্ছে
ট্রেভরওয়িলি

আমি অভিপ্রায় ব্যবহার করেছি। FLAG_ACTIVITY_CLEAR_TOP | উদ্দেশ্য.এফএলএজি_এসিটিভিটি_RESET_TASK_IF_NEEDED তবে কাজ করছে না। প্লে স্টোরের নতুন কোনও ইনস্ট্যান্স খোলা নেই
প্রবীণ কুমার ভার্মা

3
আপনি যদি rateIntent.setPackage("com.android.vending")নিশ্চিত হন যে প্লেস্টোর অ্যাপ্লিকেশনটি এই সমস্ত কোডের পরিবর্তে এই অভিপ্রায়টি পরিচালনা করবে তবে কী হবে ?
dum4ll3

3
@ dum4ll3 আমি অনুমান করি আপনি পারেন তবে এই কোডটি গুগল প্লে অ্যাপ্লিকেশন ইনস্টল করা আছে কিনা তাও স্পষ্টভাবে পরীক্ষা করে check আপনি যদি এটি পরীক্ষা না করে থাকেন তবে আপনার অ্যাক্টিভিটি
নটফাউন্ডের

81

টিউটোরিয়াল পদক্ষেপ হিসাবে অ্যান্ড্রয়েড বিকাশকারী অফিসিয়াল লিঙ্কে যান ধাপে ধাপে দেখুন এবং প্লে স্টোর থেকে আপনার অ্যাপ্লিকেশন প্যাকেজের কোড পেয়েছে যদি উপস্থিত থাকে বা প্লে স্টোর অ্যাপ্লিকেশন উপস্থিত না থাকে তবে ওয়েব ব্রাউজার থেকে অ্যাপ্লিকেশনটি খুলুন।

অ্যান্ড্রয়েড বিকাশকারী অফিসিয়াল লিঙ্ক

https://developer.android.com/distribute/tools/promote/linking.html

একটি অ্যাপ্লিকেশন পৃষ্ঠায় লিঙ্ক করা

একটি ওয়েব সাইট থেকে: https://play.google.com/store/apps/details?id=<package_name>

একটি Android অ্যাপ্লিকেশন থেকে: market://details?id=<package_name>

একটি পণ্য তালিকার সাথে সংযোগ স্থাপন

একটি ওয়েব সাইট থেকে: https://play.google.com/store/search?q=pub:<publisher_name>

একটি Android অ্যাপ্লিকেশন থেকে: market://search?q=pub:<publisher_name>

অনুসন্ধানের ফলাফলের সাথে লিঙ্ক করা

একটি ওয়েব সাইট থেকে: https://play.google.com/store/search?q=<search_query>&c=apps

একটি Android অ্যাপ্লিকেশন থেকে: market://search?q=<seach_query>&c=apps


বাজার ব্যবহার: // উপসর্গটি আর সুপারিশ করা হয় না (আপনার পোস্ট করা লিঙ্কটি চেক করুন)
গ্রেগ এনিস

@ গ্রেগইনিস আপনি যেখানে বাজারটি দেখতে পাচ্ছেন: // উপসর্গটি আর কি সুপারিশ করা হবে না?
লোকি

@ লৌকী আমি মনে করি যে বক্তব্যটি হ'ল এটি আর কোনও পরামর্শ হিসাবে তালিকাভুক্ত নয়। আপনি যদি এই পৃষ্ঠার শব্দের জন্য marketঅনুসন্ধান করেন তবে কোনও সমাধান পাবেন না। আমি মনে করি নতুন উপায় আরো একটি জেনেরিক অভিপ্রায় বন্ধ আগুন হয় developer.android.com/distribute/marketing-tools/... । প্লে স্টোর অ্যাপ্লিকেশনটির আরও সাম্প্রতিক সংস্করণগুলিতে সম্ভবত এই ইউআরআইhttps://play.google.com/store/apps/details?id=com.example.android

25

এটা চেষ্টা কর

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.example.android"));
startActivity(intent);

1
কীভাবে গুগল প্লে খুলবেন (একই অ্যাপে কোনও নতুন ভিউ এম্বেড করা হয়নি) দয়া করে আমার উত্তরটি দেখুন।
jhon

21

উপরের সমস্ত উত্তর একই অ্যাপ্লিকেশনটির একটি নতুন দৃষ্টিতে গুগল প্লে খোলেন, যদি আপনি প্রকৃতপক্ষে গুগল প্লে (বা অন্য কোনও অ্যাপ্লিকেশন) স্বাধীনভাবে খুলতে চান:

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.android.vending");

// package name and activity
ComponentName comp = new ComponentName("com.android.vending",
                                       "com.google.android.finsky.activities.LaunchUrlHandlerActivity"); 
launchIntent.setComponent(comp);

// sample to open facebook app
launchIntent.setData(Uri.parse("market://details?id=com.facebook.katana"));
startActivity(launchIntent);

গুরুত্বপূর্ণ অংশটি হ'ল গুগল প্লে বা অন্য কোনও অ্যাপ্লিকেশনটি স্বাধীনভাবে খোল।

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

শুভেচ্ছা।


কী this.cordova? পরিবর্তনশীল ঘোষণা কোথায়? কোথায় callbackঘোষিত এবং সংজ্ঞায়িত হয়?
এরিক

এটি একটি কর্ডোভা প্লাগইনের অংশ, আমি মনে করি না এটি আসলে প্রাসঙ্গিক ... আপনার কেবল প্যাকেজম্যানেজারের একটি দৃষ্টান্ত প্রয়োজন এবং নিয়মিতভাবে কোনও ক্রিয়াকলাপ শুরু করুন তবে এটি github.com/lampaa এর কর্ডোভা প্লাগইন যা আমি ওভাররোট করেছি এখানে github.com/code4jhon/org.apache.cordova.startapp
jhon

4
আমার বক্তব্যটি সহজভাবে, এই কোডটি আসলে এমন কিছু নয় যা লোকেরা সহজেই তাদের নিজস্ব অ্যাপ্লিকেশনটিতে ব্যবহারের জন্য পোর্ট করতে পারে। মেদ ছাঁটাই এবং কেবল মূল পদ্ধতিটি রেখে যাওয়া ভবিষ্যতের পাঠকদের জন্য উপকারী হবে।
এরিক

হ্যাঁ, আমি বুঝতে পারি ... আপাতত আমি হাইব্রিড অ্যাপগুলিতে আছি। সত্যিই সম্পূর্ণ নেটিভ কোড পরীক্ষা করা যায় না। তবে আমি মনে করি ধারণাটি আছে। আমার যদি সুযোগ হয় তবে আমি সঠিক নেটিভ লাইন যুক্ত করব।
jhon

আশা করি এটি এটিকে @ এরিক
জোন

14

গুগল প্লে স্টোর অ্যাপটি ইনস্টল করা আছে কিনা এবং আপনি যদি এটি ব্যবহার করতে পারেন তবে আপনি "মার্কেট: //" প্রোটোকলটি ব্যবহার করতে পারেন You

final String my_package_name = "........."  // <- HERE YOUR PACKAGE NAME!!
String url = "";

try {
    //Check whether Google Play store is installed or not:
    this.getPackageManager().getPackageInfo("com.android.vending", 0);

    url = "market://details?id=" + my_package_name;
} catch ( final Exception e ) {
    url = "https://play.google.com/store/apps/details?id=" + my_package_name;
}


//Open the app page in Google Play store:
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);

1
কীভাবে গুগল প্লে খুলবেন (একই অ্যাপে কোনও নতুন ভিউ এম্বেড করা হয়নি) দয়া করে আমার উত্তরটি দেখুন।
jhon

12

যদিও এরিকের উত্তরটি সঠিক এবং বেরকের কোডও কাজ করে। আমি মনে করি এটি উভয় আরও মার্জিতভাবে একত্রিত।

try {
    Intent appStoreIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName));
    appStoreIntent.setPackage("com.android.vending");

    startActivity(appStoreIntent);
} catch (android.content.ActivityNotFoundException exception) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}

ব্যবহার করে setPackageআপনি ডিভাইসটিকে প্লে স্টোর ব্যবহার করতে বাধ্য করেন। কোনও প্লে স্টোর ইনস্টল না থাকলে, Exceptionধরা পড়বে।


অফিসিয়াল ডকস ব্যবহারের https://play.google.com/store/apps/details?id=পরিবর্তে market:কীভাবে আসবে? developer.android.com/distribute/marketing-tools/… এখনও একটি বিস্তৃত এবং সংক্ষিপ্ত উত্তর।
সার্ভ-ইন

আমি নিশ্চিত নই, তবে আমি মনে করি এটি একটি শর্টকাট যা অ্যান্ড্রয়েড " play.google.com/store/apps " এ অনুবাদ করে । আপনি সম্ভবত ব্যতিক্রম হিসাবে "বাজার: //" ব্যবহার করতে পারেন।
এম 3-এন 50


7

আপনি করতে পারেন:

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

এখানে রেফারেন্স পেতে :

আপনি এই প্রশ্নের গৃহীত উত্তরে বর্ণিত পদ্ধতিরও চেষ্টা করতে পারেন: গুগল প্লে স্টোরটি অ্যান্ড্রয়েড ডিভাইসে ইনস্টল রয়েছে কি না তা নির্ধারণ করতে পারে না


আমি এই কোডটি দিয়ে ইতিমধ্যে চেষ্টা করেছি, এটি ব্রাউজার / প্লে স্টোর নির্বাচন করার বিকল্পটিও দেখায়, কারণ আমার ডিভাইস দুটি অ্যাপ্লিকেশন (গুগল প্লে স্টোর / ব্রাউজার) ইনস্টল করেছে।
রাজেশ কুমার

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

7

পার্টিতে দেরীতে অফিসিয়াল ডক্স এখানে। এবং কোড বর্ণিত হয়

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

আপনি এই উদ্দেশ্যটি কনফিগার করার সাথে সাথে "com.android.vending"প্রবেশ করুন Intent.setPackage()যাতে ব্যবহারকারীরা আপনার অ্যাপ্লিকেশনটির বিবরণ কোনও চয়নকারীর পরিবর্তে গুগল প্লে স্টোর অ্যাপে দেখতে পান । কোটলিনের জন্য

val intent = Intent(Intent.ACTION_VIEW).apply {
    data = Uri.parse(
            "https://play.google.com/store/apps/details?id=com.example.android")
    setPackage("com.android.vending")
}
startActivity(intent)

আপনি যদি গুগল প্লে ইনস্ট্যান্ট ব্যবহার করে তাত্ক্ষণিক অ্যাপ প্রকাশ করেন তবে আপনি অ্যাপটি নীচের হিসাবে চালু করতে পারেন:

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri.Builder uriBuilder = Uri.parse("https://play.google.com/store/apps/details")
    .buildUpon()
    .appendQueryParameter("id", "com.example.android")
    .appendQueryParameter("launch", "true");

// Optional parameters, such as referrer, are passed onto the launched
// instant app. You can retrieve these parameters using
// Activity.getIntent().getData().
uriBuilder.appendQueryParameter("referrer", "exampleCampaignId");

intent.setData(uriBuilder.build());
intent.setPackage("com.android.vending");
startActivity(intent);

কোটলিনের জন্য

val uriBuilder = Uri.parse("https://play.google.com/store/apps/details")
        .buildUpon()
        .appendQueryParameter("id", "com.example.android")
        .appendQueryParameter("launch", "true")

// Optional parameters, such as referrer, are passed onto the launched
// instant app. You can retrieve these parameters using Activity.intent.data.
uriBuilder.appendQueryParameter("referrer", "exampleCampaignId")

val intent = Intent(Intent.ACTION_VIEW).apply {
    data = uriBuilder.build()
    setPackage("com.android.vending")
}
startActivity(intent)

আমি মনে করি, এটি ভুল, কমপক্ষে Uri.parse("https://play.google.com/store/apps/details?id=,। কিছু ডিভাইসে এটি প্লে মার্কেটের পরিবর্তে ওয়েব ব্রাউজার খোলে।
কুলমাইন্ড

সমস্ত কোড অফিসিয়াল ডক্স থেকে নেওয়া হয়েছে। উত্তর কোডে লিঙ্কটিও সংযুক্ত রয়েছে একটি দ্রুত রেফারেন্সের জন্য এখানে বর্ণিত হয়েছে।
হুসেন নাসিম

@ কুলমাইন্ড এর কারণ সম্ভবত those ডিভাইসগুলির প্লে স্টোর অ্যাপ্লিকেশনটির একটি পুরানো সংস্করণ রয়েছে যার কোনও ইউআরআইয়ের সাথে কোনও ফিল্টারের মিল নেই।
tir38

@ tir38, সম্ভবত তাই হয়তো তাদের গুগল প্লে পরিষেবাদি নেই বা সেগুলিতে অনুমোদিত নয়, আমার মনে নেই।
কুলমাইন্ড

6

এর পরিবর্তে সরকারী দস্তাবেজগুলি ব্যবহার https://করে market://, এটি এরিক এবং এম 3-এন 50 এর উত্তরকে কোড পুনরায় ব্যবহারের সাথে একত্রিত করে (নিজেকে পুনরাবৃত্তি করবেন না):

Intent intent = new Intent(Intent.ACTION_VIEW)
    .setData(Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
try {
    startActivity(new Intent(intent)
                  .setPackage("com.android.vending"));
} catch (android.content.ActivityNotFoundException exception) {
    startActivity(intent);
}

এটি জিপিলে অ্যাপ্লিকেশানটি উপস্থিত থাকলে এবং ডিফল্টে পড়ে গেলে এটি খোলার চেষ্টা করে।


5

ব্যবহারের জন্য প্রস্তুত সমাধান:

public class GoogleServicesUtils {

    public static void openAppInGooglePlay(Context context) {
        final String appPackageName = context.getPackageName();
        try {
            context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
        } catch (android.content.ActivityNotFoundException e) { // if there is no Google Play on device
            context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
        }
    }

}

এরিকের উত্তরের ভিত্তিতে।


1
এটা কি তোমার জন্য কাজ করে? এটি আমার অ্যাপের পৃষ্ঠাটি নয়, মূল গুগল প্লে পৃষ্ঠাটি খুলবে।
ভায়োলেট জিরাফ

4

Kotlin:

এক্সটেনশান:

fun Activity.openAppInGooglePlay(){

val appId = BuildConfig.APPLICATION_ID
try {
    this.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$appId")))
} catch (anfe: ActivityNotFoundException) {
    this.startActivity(
        Intent(
            Intent.ACTION_VIEW,
            Uri.parse("https://play.google.com/store/apps/details?id=$appId")
        )
    )
}}

পদ্ধতি:

    fun openAppInGooglePlay(activity:Activity){

        val appId = BuildConfig.APPLICATION_ID
        try {
            activity.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$appId")))
        } catch (anfe: ActivityNotFoundException) {
            activity.startActivity(
                Intent(
                    Intent.ACTION_VIEW,
                    Uri.parse("https://play.google.com/store/apps/details?id=$appId")
                )
            )
        }
    }

3

আপনি যদি নিজের অ্যাপ থেকে গুগল প্লে স্টোর খুলতে চান তবে এই আদেশটি সরাসরি ব্যবহার করুন: market://details?gotohome=com.yourAppNameএটি আপনার অ্যাপের গুগল প্লে স্টোর পৃষ্ঠাগুলি খুলবে open

কোনও নির্দিষ্ট প্রকাশকের দ্বারা সমস্ত অ্যাপ্লিকেশন দেখান

অ্যাপগুলির জন্য অনুসন্ধান করুন যা এর শিরোনাম বা বিবরণে কোয়েরি ব্যবহার করে

তথ্যসূত্র: https://tricklio.com/market-details-gotohome-1/


3

Kotlin

fun openAppInPlayStore(appPackageName: String) {
    try {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$appPackageName")))
    } catch (exception: android.content.ActivityNotFoundException) {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$appPackageName")))
    }
}

2
public void launchPlayStore(Context context, String packageName) {
    Intent intent = null;
    try {
            intent = new Intent(Intent.ACTION_VIEW);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setData(Uri.parse("market://details?id=" + packageName));
            context.startActivity(intent);
        } catch (android.content.ActivityNotFoundException anfe) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageName)));
        }
    }

2

এই উদ্দেশ্যে আমার কোটলিন এনটেনশন ফাংশন

fun Context.canPerformIntent(intent: Intent): Boolean {
        val mgr = this.packageManager
        val list = mgr.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
        return list.size > 0
    }

এবং আপনার ক্রিয়াকলাপে

val uri = if (canPerformIntent(Intent(Intent.ACTION_VIEW, Uri.parse("market://")))) {
            Uri.parse("market://details?id=" + appPackageName)
        } else {
            Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)
        }
        startActivity(Intent(Intent.ACTION_VIEW, uri))

2

এখানে উপরের উত্তরগুলির চূড়ান্ত কোডটি এখানে প্রথমটি গুগল প্লে স্টোর অ্যাপ্লিকেশনটি ব্যবহার করে এবং বিশেষত প্লে স্টোর ব্যবহার করে অ্যাপটি খোলার চেষ্টা করে, যদি এটি ব্যর্থ হয় তবে এটি ওয়েব সংস্করণ ব্যবহার করে অ্যাকশন ভিউ শুরু করবে: @ এরিকের কাছে ক্রেডিট, @ জোনাথন ক্যাবালেরো

public void goToPlayStore() {
        String playStoreMarketUrl = "market://details?id=";
        String playStoreWebUrl = "https://play.google.com/store/apps/details?id=";
        String packageName = getActivity().getPackageName();
        try {
            Intent intent =  getActivity()
                            .getPackageManager()
                            .getLaunchIntentForPackage("com.android.vending");
            if (intent != null) {
                ComponentName androidComponent = new ComponentName("com.android.vending",
                        "com.google.android.finsky.activities.LaunchUrlHandlerActivity");
                intent.setComponent(androidComponent);
                intent.setData(Uri.parse(playStoreMarketUrl + packageName));
            } else {
                intent = new Intent(Intent.ACTION_VIEW, Uri.parse(playStoreMarketUrl + packageName));
            }
            startActivity(intent);
        } catch (ActivityNotFoundException e) {
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(playStoreWebUrl + packageName));
            startActivity(intent);
        }
    }

2

এই লিঙ্কটি অ্যাপটি স্বয়ংক্রিয়ভাবে বাজারে খুলবে: // আপনি অ্যান্ড্রয়েড এবং ব্রাউজারে থাকলে আপনি পিসিতে থাকেন।

https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.app.id&ddl=1&pcampaignid=web_ddl_1

আপনি কি বোঝাতে চেয়েছেন? তুমি কি আমার সমাধান চেষ্টা করেছ? এটা আমার জন্য কাজ করেছে।
নিকোলে শিন্দারভ

আসলে আমার কাজটিতে একটি ওয়েবভিউ রয়েছে এবং ওয়েবভিউতে আমাকে কোনও ইউআরএল লোড করতে হয়। তবে এতে যদি কোনও প্লেস্টোর ইউআরএল খোলা থাকে তবে এটি প্লেস্টোরের খোলা বোতামটি দেখায়। সুতরাং সেই বোতামটি ক্লিক করে আমার অ্যাপটি খুলতে হবে to এটি যে কোনও অ্যাপ্লিকেশনের জন্য গতিশীল হবে, তবে আমি কীভাবে পরিচালনা করব?
hpAndro

কেবল লিঙ্কটি চেষ্টা করে দেখুনhttps://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.app.id&ddl=1&pcampaignid=web_ddl_1
নিকোলে শিন্দারভ

1

আমি উভয় মিলিত হয়েছে Berťák এবং স্টেফানো Munarini একটি সংকর সমাধান যা উভয় পরিচালনা তৈরি উত্তর হার এই অ্যাপ এবং আরও দেখান অ্যাপ দৃশ্যকল্প।

        /**
         * This method checks if GooglePlay is installed or not on the device and accordingly handle
         * Intents to view for rate App or Publisher's Profile
         *
         * @param showPublisherProfile pass true if you want to open Publisher Page else pass false to open APp page
         * @param publisherID          pass Dev ID if you have passed PublisherProfile true
         */
        public void openPlayStore(boolean showPublisherProfile, String publisherID) {

            //Error Handling
            if (publisherID == null || !publisherID.isEmpty()) {
                publisherID = "";
                //Log and continue
                Log.w("openPlayStore Method", "publisherID is invalid");
            }

            Intent openPlayStoreIntent;
            boolean isGooglePlayInstalled = false;

            if (showPublisherProfile) {
                //Open Publishers Profile on PlayStore
                openPlayStoreIntent = new Intent(Intent.ACTION_VIEW,
                        Uri.parse("market://search?q=pub:" + publisherID));
            } else {
                //Open this App on PlayStore
                openPlayStoreIntent = new Intent(Intent.ACTION_VIEW,
                        Uri.parse("market://details?id=" + getPackageName()));
            }

            // find all applications who can handle openPlayStoreIntent
            final List<ResolveInfo> otherApps = getPackageManager()
                    .queryIntentActivities(openPlayStoreIntent, 0);
            for (ResolveInfo otherApp : otherApps) {

                // look for Google Play application
                if (otherApp.activityInfo.applicationInfo.packageName.equals("com.android.vending")) {

                    ActivityInfo otherAppActivity = otherApp.activityInfo;
                    ComponentName componentName = new ComponentName(
                            otherAppActivity.applicationInfo.packageName,
                            otherAppActivity.name
                    );
                    // make sure it does NOT open in the stack of your activity
                    openPlayStoreIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    // task reparenting if needed
                    openPlayStoreIntent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                    // if the Google Play was already open in a search result
                    //  this make sure it still go to the app page you requested
                    openPlayStoreIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    // this make sure only the Google Play app is allowed to
                    // intercept the intent
                    openPlayStoreIntent.setComponent(componentName);
                    startActivity(openPlayStoreIntent);
                    isGooglePlayInstalled = true;
                    break;

                }
            }
            // if Google Play is not Installed on the device, open web browser
            if (!isGooglePlayInstalled) {

                Intent webIntent;
                if (showPublisherProfile) {
                    //Open Publishers Profile on web browser
                    webIntent = new Intent(Intent.ACTION_VIEW,
                            Uri.parse("http://play.google.com/store/search?q=pub:" + getPackageName()));
                } else {
                    //Open this App on web browser
                    webIntent = new Intent(Intent.ACTION_VIEW,
                            Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
                }
                startActivity(webIntent);
            }
        }

ব্যবহার

  • প্রকাশকদের প্রোফাইল খুলতে
   @OnClick(R.id.ll_more_apps)
        public void showMoreApps() {
            openPlayStore(true, "Hitesh Sahu");
        }
  • প্লেস্টোরে অ্যাপ পৃষ্ঠা খুলতে
@OnClick(R.id.ll_rate_this_app)
public void openAppInPlayStore() {
    openPlayStore(false, "");
}

আইডিতে এই কোডটি আরও ছোট পদ্ধতিতে ভাগ করার পরামর্শ দেয়। এই স্প্যাগেটিতে গুরুত্বপূর্ণ কোডটি পাওয়া কঠিন :) প্লাস আপনি com.google.market সম্পর্কে কী "com.android.vending" অনুসন্ধান করছেন
এথের্না

1

লোকেরা, ভুলে যাবেন না যে আপনি আসলে এটি থেকে আরও কিছু পেতে পারেন। আমি উদাহরণস্বরূপ ইউটিএম ট্র্যাকিং বলতে চাই। https://developers.google.com/analytics/devguides/collection/android/v4/campaigns

public static final String MODULE_ICON_PACK_FREE = "com.example.iconpack_free";
public static final String APP_STORE_URI =
        "market://details?id=%s&referrer=utm_source=%s&utm_medium=app&utm_campaign=plugin";
public static final String APP_STORE_GENERIC_URI =
        "https://play.google.com/store/apps/details?id=%s&referrer=utm_source=%s&utm_medium=app&utm_campaign=plugin";

try {
    startActivity(new Intent(
        Intent.ACTION_VIEW,
        Uri.parse(String.format(Locale.US,
            APP_STORE_URI,
            MODULE_ICON_PACK_FREE,
            getPackageName()))).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
} catch (android.content.ActivityNotFoundException anfe) {
    startActivity(new Intent(
        Intent.ACTION_VIEW,
        Uri.parse(String.format(Locale.US,
            APP_STORE_GENERIC_URI,
            MODULE_ICON_PACK_FREE,
            getPackageName()))).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
}

1

ফ্যালব্যাক এবং বর্তমান সিনট্যাক্স সহ একটি কোটলিন ভেরিসন

 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 or Intent.FLAG_ACTIVITY_NEW_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)
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.