2016-02-22 3 views
1

Я сканирую QR-код (где конкретные данные закодированы) с помощью QR-сканера. Если мое приложение установлено на устройстве, приложение запускается. Если приложение не установлено, пользователь загружает приложение для загрузки приложения. Я много искал в Интернете и только нашел this вопрос.Android QR проверить, установлено ли приложение

Вот активность из файла манифеста, который вызывается, когда QR-код сканируется

<activity android:name=".map.TestQrOpenActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW"/> 
       <category android:name="android.intent.category.DEFAULT"/> 
       <category android:name="android.intent.category.BROWSABLE"/> 
       <data android:scheme="uniqueapp"/> 
      </intent-filter> 
</activity> 

и вот строка, которая закодирована в моем QR коде

uniqueapp://myData 

и что работает отлично, если приложение установлено в устройство, но если оно не установлено, мне нужно зайти в Google Play и загрузить его в основном , если приложение существует. uniqueapp://myData else open market://details?id=com.my.package.name Так это возможно? (Я не whant написать свой собственный сканер)

+0

Как пользователь может сканировать QR-код с вашим приложением, пока ваше приложение не установлено? –

+0

@Gerald Schneider Я сканирую QR-код с другим приложением (QR-сканер) – David

+0

У вас еще проверили мой ответ, он делает то, что вам нужно, сначала дайте свой путь как ссылку, второй укажите url appstore – Strider

ответ

1

Попробуйте

public static boolean intentIsAvailable(Context ctx, Intent intent) { 
    final PackageManager mgr = ctx.getPackageManager(); 
    List<ResolveInfo> list = 
     mgr.queryIntentActivities(intent, 
     PackageManager.MATCH_DEFAULT_ONLY); 
    return list.size() > 0; 
} 
+0

Спасибо за ваш ответ, но он не работает, если мое приложение не установлено (я не хочу писать свой собственный QR-ридер) – David

+0

Ohh K .. Теперь у меня есть вопрос .. Подождите мин – ValayPatel

+1

Я считаю, что то, что вы пытаетесь просто невозможно потому что логика, которую вы хотите исполнить, не может быть там в QR-коде. В приложении для чтения QR-кода должен быть некоторый мозг, который должен перенаправить на рынок. Один из способов, которым я чувствую, что это может быть достигнуто, если у вас есть веб-хостинг ... Но это длинный путь. И я уверен, что вы можете добиться этого с помощью этой опции – ValayPatel

0

Может быть, это решение и:

appurl

Примечание: приложение всегда будет проверять первый URL-адрес, а затем возвращаться ко второму URL-адресу. Например, в разделе «iOS - iPhone», если вы хотите открыть приложение tweetbot, вы добавите tweetbot: // в первое текстовое поле, затем добавьте URL-адрес магазина iTunes во второе текстовое поле. Когда пользователь нажимает на ссылку, если они находятся на своем iPhone, он проверяет, установлен ли пользователь в tweetbot, если он не отправит их в магазин iTunes.

Он генерирует URL и QR Code Надеюсь, что это то, что и нужно.

0

Я рекомендую использовать ZXing Android Embedded.

Таким образом, вам не нужно писать собственный сканер, и пользователю не нужно ничего устанавливать.

1

Рефрейминг вопрос:

Из того, что я читаю, я думаю, что вы хотите, чтобы выполнить следующие действия:

  1. Читайте мой QR-код с моим приложением
  2. Читайте мой QR-код с любым другим QR-ридером
  3. Всегда отправляйте QR-данные в мое приложение или на мой сайт.
  4. Если мое приложение не установлено, помогите пользователю установить мое приложение.

Я думаю, что вы решаете все четыре варианта использования, которые я описываю с помощью ссылок на приложения.

Android App Ссылки:

http://developer.android.com/training/app-links/index.html

С ссылке приложения вы можете поместить свой URL в передней, и есть ваше приложение перехватит, если приложение установлено, и если не установлен, андроид будет просто отправьте людей на свой сайт. Как только они появятся на вашем сайте, вы можете сказать им, что им нужно установить приложение.