2009-08-12 3 views

ответ

2

я не уверен, что «идентификатор приложения» вы имеете в виду, но уникальный идентификатор вашего приложения вы можете использовать:.

getApplication() метод getPackageName() от текущей деятельности

+2

каждое установленное приложение имеет уникальный идентификатор ... это возможность получить уникальный идентификатор приложения, от другого приложения – arams

+2

не это 'getApplicationContext(). getPackageName()'? –

0

Поле PackageInfo.sharedUserId отобразит идентификатор пользователя , указанный в манифесте.

Если вы хотите два приложения, чтобы иметь такой же USERID, чтобы они могли видеть данные друг друга и работать в том же процессе, а затем присвоить им же USERID в манифесте:

android:sharedUserId="string" 

два пакета с тот же sharedUserId должен иметь одну и ту же подпись.

Я бы также рекомендовал прочитать here для подталкивания в правильном направлении.

+0

2 разных приложения используют одно и то же имя пакета, приложения могут совместно использовать данные? ... – arams

+0

Нет. Если два приложения имеют один и тот же shareUserId И подписаны с одной и той же подписью, они могут обмениваться данными. Имя пакета не является проблемой. – Will

0

Если цель состоит в том, чтобы передавать данные с каким-либо другим приложением, используйте методы sendBroadcast от Intent.

1

Иначе вы можете получить идентификатор процесса приложение выполняется в:

окончательного статического Int android.os.Process.myPid()
Возвращает идентификатор этого процесса, который может быть использован с KillProcess (межд) и sendSignal (int, int).

1

Я не уверен, что вам нужно приложение/идентификатор установки, но вы можете просмотреть существующие возможности в большой статье от разработчиков Android:

Подводя итог:

  • UUID.randomUUID() для создания идентификатора в первый раз приложение запускается после установки и простого поиска впоследствии
  • TelephonyManager.getDeviceId() для идентификатора
  • Settings.Secure.ANDROID_ID фактического устройства на относительно современных устройств
30

Если по application id, вы имеете в виду package name, вы можете использовать метод Context::getPackageName (http://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29).

В случае, если вы хотите общаться с другими приложениями, существует несколько способов:

  1. Start деятельность другого приложения и передавать данные в «Extras» о «намерениях»
  2. Отправить радиопередачу с конкретным действием/категорией и отправкой данных в дополнительных целях
  3. Если вам просто нужно разделить структурированные данные, используйте поставщика контента
  4. Если другому приложению необходимо постоянно работать в фоновом режиме, используйте Server и «привяжите» себя к оказание услуг.

Если вы можете уточнить свое точное требование, сообщество сможет вам помочь.

+0

Что делать, если я хочу показать список приложений и должен иметь идентификатор в виде целого числа, как и все списки-адаптеры? Я мог бы использовать время установки, но он имеет длинный тип. Будет ли использовать его в int? –

+2

имя пакета не всегда applicationId, когда вы устанавливаете его через build.gradle! –

0

Если вы используете новую систему сборки Gradle, тогда getPackageName будет странно возвращать идентификатор приложения, а не имя пакета. Так ответ MasterGaurav является правильным, но ему не нужно, чтобы начать с ++

Если прикладным идентификатором, вы имеете в виду пакет имя ...

Подробнее о различиях here ,

** не так ново в этой точке

++ Я понимаю, что его ответ сделал совершенный смысл в 2011 году

50

Если ваши ищут значение, определенное в applicationId Gradle, вы можете просто использовать

BuildConfig.APPLICATION_ID 
+0

Gradle так хорош! Это спасатель жизни. – hgoebl

+7

Это было бы не так полезно, если вы пишете библиотеку Android –

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