2016-02-25 2 views
1

Мое приложение добавляет уведомление, которое при щелчке должно перенаправить пользователя в магазин воспроизведения Google. Уведомление в основном направляет пользователя на загрузку приложения из магазина Google. Но есть улов; уведомление должно перенаправлять пользователя только в том случае, если приложение не установлено i.e: при нажатии на уведомление проверяет, установлено ли приложение; если нет, заведите пользователя в магазин Google Play. Как мне это достичь?Уведомление о намерениях Android, вызванное в соответствии с условием

Должен ли я добавить фиктивную активность для достижения этого?

ответ

0

Если вы не указали какой-либо класс активности в ожидании намерения, указанное для уведомления добавьте и в этом классе деятельности, проверьте, установлено ли приложение, использующим имя пакета, указанное в вашем Google Play Маркет URL,

  • Если установлено, сохраните свою активность, если хотите или закончите.
  • Если вы не закончили свою работу после открытия URL-адреса в приложении playstore.

Другой способ справиться с этой задачей - использовать пользовательский BroadcastReceiver, используя PendingIntent.getBroadcast. Так же, как и ваша проверка, реализованная в вашей деятельности, вы можете реализовать ее в классе BroadcastReceiver и обрабатывать действие аналогичным образом.

0

попробовать этот раз, проверьте с вашим именем пакета

boolean check_app_install = check_appInstalled("com.Example.package"); 
       if(check_app_install) { 
        //This intent will help you to launch if the package is already installed 
        Intent LaunchIntent = getPackageManager() 
          .getLaunchIntentForPackage("com.Example.package"); 
        startActivity(LaunchIntent); 

        System.out.println("App is already installed on phone"); 
       } else { 
        System.out.println("App is not installed on phone"); 
       } 

    private boolean check_appInstalled(String uri) { 
       PackageManager pm = getPackageManager(); 
       boolean app_installed; 
       try { 
        pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); 
        app_installed = true; 
       } 
       catch (PackageManager.NameNotFoundException e) { 
        app_installed = false; 
       } 
       return app_installed; 
      } 
0

Да, вы должны добавить фиктивную активность. В этой деятельности, добавьте этот код в onCreate для обработки приложение доступно на андроид телефон или нет:

PackageManager pm = getPackageManager(); 
String packageName = "INSERT PACKAGE NAME OF APP"; 
Intent launchIntent = pm.getLaunchIntentForPackage(packageName); 
if(launchIntent != null){ 
    startActivity(launchIntent); 
} 
else{ 
    String googlePlayStoreLink = "INSERT URL OF PLAYSTORE LINK"; 
    startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(googlePlayStoreLink))); 
} 
+0

не будет ли мерцает с запуском т.е. деятельности, а затем другой вид деятельности? – thepace

Смежные вопросы