1

Is it Possible to know whether android app is install from play store without using packageInstaller? Every Other question is related to packageInstaller which any one can edit but my question is without using packageInstaller

Ashish Garg
  • 162
  • 1
  • 11
  • 1
    Possible duplicate of [How to know an application is installed from google play or side-load?](http://stackoverflow.com/questions/10809438/how-to-know-an-application-is-installed-from-google-play-or-side-load) – Abhishek Singh Apr 27 '17 at 05:39
  • Have you found the app you're looking for in the Play Store? – SDsolar Apr 27 '17 at 05:39

2 Answers2

1

You should use InstallReferrerReceiver.
Create and register BroadCastReceiver like in the article. Here is my simple example:

public class InstallReferrerReceiver extends BroadcastReceiver {

    public static final String FROM_SPECIFIC_FEED = "FROM_SPECIFIC_FEED";
    public static final String MAIN_FEED_ID = "MAIN_FEED_ID";

    private static final String REFERRER = "referrer";

    private static final String SOURCE = "utm_source=";

    @Override
    public void onReceive(Context context, Intent intent) {
        String referrer = intent.getStringExtra(REFERRER);
        //"utm_source=24news.com.ua&utm_medium=js&utm_term=fee";
        //"utm_source=12&utm_medium=js&utm_term=fee";
        String mainFeed = extractMainFeed(referrer, false);

        if (mainFeed != null && mainFeed.length() > 0) {
            try {
                setMainFeed(context, Integer.parseInt(mainFeed));
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
        }
    }

    private String extractMainFeed(String referrer, boolean toEnd) {
        if (!toEnd) {
            try {
                return referrer.substring(referrer.indexOf(SOURCE) + SOURCE.length(), referrer.indexOf("&"));
            } catch (Exception e) {
                return extractMainFeed(referrer, true);
            }
        } else {
            try {
                return referrer.substring(referrer.indexOf(SOURCE) + SOURCE.length());
            } catch (Exception e) {}
        }
        return null;
    }

    private void setMainFeed(Context context, int mainFeedId) {
        PreferenceManager.getInstance(context).setMainFeedId(mainFeedId);
        Intent fromSpecificFeed = new Intent(FROM_SPECIFIC_FEED);
        fromSpecificFeed.putExtra(MAIN_FEED_ID, mainFeedId);
        LocalBroadcastManager.getInstance(context).sendBroadcast(fromSpecificFeed);
    }
}
Volodymyr Kulyk
  • 6,455
  • 3
  • 36
  • 63
0

In Packagemanager chek for getInstallerPackageName, this method will give you the information.

Satyam Anand
  • 377
  • 1
  • 8