2010-05-07 2 views
45

Я создаю мобильный сайт, на котором будет отображаться страница, с которой пользователи могут загружать соответствующие приложения, которые мы рекомендуем. Я нашел instructions для создания ссылок для запуска рынка, но это предполагает, что вы являетесь разработчиком соответствующего приложения и знаете точное имя пакета.Найти имя пакета для приложений Android, чтобы использовать Intent для запуска приложения Market из сети

Есть ли способ получить имя пакета, кроме как просто связаться с разработчиками и спросить?

Также выясняется, что эти инструкции действительно не работают для создания веб-гиперссылок. Они дают вам URI для ссылки в строке кода Java в другом приложении для Android. Наш сайт находится в Drupal, поэтому Java не собирается работать.

Для iPhone я нашел easy instructions для получения стиля URL/ссылки, который мне нужен из магазина iTunes, поэтому я ищу информацию, подобную этой.

ответ

93

Это зависит от того, где именно вы хотите получить информацию от. У вас есть куча вариантов:

  • Если у вас есть копия .apk, это просто случай его открытия в виде архива и, глядя на файл AndroidManifest.xml. Элемент верхнего уровня <manifest> будет иметь атрибут package.
  • Если у вас установлено приложение на устройстве и можно подключиться с помощью adb, вы можете запустить adb shell и выполнить pm list packages -f, в котором указано имя пакета для каждого установленного apk.
  • Если вы просто хотите, чтобы вручную найти пару имен пакетов, вы можете искать приложения на http://www.cyrket.com/m/android/, и имя пакета отображается в URL
  • Вы также можете сделать это progmatically из Android приложения с помощью PackageManager

Как только вы получили имя пакета, вы просто ссылаетесь на market://search?q=pname:<package_name> или http://market.android.com/search?q=pname:<package_name>. Оба будут открывать рынок на устройстве Android; последний, очевидно, имеет потенциал для работы и с другим оборудованием (это не в последнюю очередь).

+26

Другим и простым способом является: перейдите на страницу приложения на рынке Android (теперь игра Google), проверьте URL-адрес. Пакет приложений находится между? Id = и & just after. – Martin

+0

http://developer.android.com/guide/publishing/publishing.html Здесь вы можете найти официальную информацию из google – Li3ro

+0

adb shell pm list packages -f работал для меня. Когда я попытался извлечь файл .apk, AndroidManifest.xml был в двоичном виде. –

0

Это довольно сложная ситуация, вы можете получить имя пакета из файла apk, но я предполагаю, что вы хотите сделать это автоматически.

AndroLib имеет имена пакетов для большого количества приложений, но вам придется разбирать их, поскольку API не существует. Theres раздел разработчика, который может иметь некоторые инструменты, которые помогут вам.

Good Luck

+0

Спасибо. Эта проблема на самом деле сложнее, чем я думал, потому что инструкции, которые я связывал с выше, имеют свой собственный недостаток - они предназначены для привязки к Market из приложения, а не из веб-сайта. Они требуют Java, который, я думаю, не будет хорошо играть с Drupal, мягко говоря. – eom

55

Использование aapt из SDK как

aapt dump badging yourpkg.apk 

Это будет печатать имя пакета вместе с другими деталями.

инструментов находится в
< sdk_home>/сборки-инструменты/android- < api_level>
или
< sdk_home>/платформенные инструменты
или
< sdk_home>/платформы/android- < api_level>/tools

Обновлено в соответствии с Комментарий пользователя geniusburger. Благодаря!

+1

Я только что установил комплект ADT и нашел его здесь ' \ build-tools \ android- ' – geniusburger

1

Вот простой способ получить полный пакет приложения. мы можем использовать приложение astro file manager. Вы можете получить его на рынке Android. Astro app manager покажет нам полный пакет приложения.

3

Не уверен, что вам все еще нужно это, но в http://www.appbrain.com/ вы просматриваете приложение, а имя пакета находится в URL-адресе. Например: http://www.appbrain.com/app/fruit-ninja/com.halfbrick.fruitninja - ссылка для фруктового ниндзя. Обратите внимание: полужирный

7

Следующий сценарий bash может использоваться для отображения имен пакетов и действий в apk и запуска приложения, передав его APK-файл.

apk_start.sh

package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g` 
activity=`aapt dump badging $* | grep Activity | awk '{print $2}' | sed s/name=//g | sed s/\'//g` 
echo 
echo package : $package 
echo activity: $activity 
echo 
echo Launching application on device.... 
echo 
adb shell am start -n $package/$activity 

Затем, чтобы запустить приложение в эмуляторе, просто поставить APK файла следующим образом:

apk_start.sh /tmp/MyApp.apk 

Конечно, если вы просто хотите пакет и деятельность имя отображаемого apk, удалите последнюю строку скрипта.

Вы можете остановить приложение таким же образом, с помощью этого сценария:

apk_stop.sh

package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g` 
adb shell am force-stop $package 

как так:

apk_stop.sh /tmp/MyApp.apk 

Важное примечание: AAPT можно найти здесь:

<android_sdk_home>/build-tools/android-<ver>/aapt 
+1

Я люблю тебя! btw версия инструмента сборки, которую я использую, перечисляет действие с активностью запуска key, поэтому мне пришлось изменить действие grep на '' aap dump badging $ * | grep запускаемая активность | awk '{print $ 2}' | sed s/name = // g | sed s/\ '// g'' –

+0

Прохладный ... рад, что это помогло ... и спасибо за предложения ... Я еще не сделал Android dev, так что хорошо знать! –

4

Следующий код будет перечислять их:

adb shell dumpsys package <packagename> 
2

Добавление к выше ответов: Чтобы найти имя пакета приложений, установленных на любом устройстве Android: Перейти к Хранение/Android/данные/< package-name>

1

Вы можете выполнить поиск в Интернете в Google Play Store.Если найдено, проверьте URL-адрес, например, https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en

Параметр id соответствует имени пакета приложения. В случае URL-адреса в примере имя пакета - lutey.FTPServer.

0

Как только у вас есть имя пакета, как описано Chris Smith's answer, вы можете/должны использовать URL-адрес намерения для ссылки. Это special format URL, что запустит пакет, если пользователь уже установил его, или открыть магазин игр на странице приложения, если не ...

intent://#Intent;package=qualified.package.name;end 

приложения должно поддерживать это, с активностью, помечается как просматриваемой , но многие будут.

-2

Если вам нужна эта информация на вашем телефоне, лучше всего использовать приложение типа «APKit», которое отображает полное имя пакета для каждого приложения в телефоне. Затем эту информацию можно использовать в телефоне.

0
  1. Перейти к настройке приложения.
  2. Нажмите Хранение & USB.
  3. Нажмите Телефонную карточку.
  4. Нажмите Android.
  5. Нажмите Данные.

Теперь вы можете найти имена пакетов всех приложений, установленных на вашем телефоне.

enter image description here

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

  • Нет связанных вопросов^_^