2015-04-14 3 views
1

Мое приложение com.test.sample вызывается внешним app com.testExternal.outsideApp. Внешнее приложение использует намерение вызвать MainActivity для com.test.sample, вызывая startActivityForResult. То, что я ищу, - это способ программно получить имя пакета внешнего приложения. Я пробовал несколько способов:Как получить имя пакета внешнего приложения, вызывающего мое приложение

String parentPackageName = this.getParent(). GetPackageName();
// Это не работает, поскольку родитель всегда возвращает NULL.

String packageName = this.getIntent(). GetPackage();
// Это возвращает имя пакета текущего приложения, которое не то, что я хочу.

Есть ли другой способ получить имя пакета приложения-вызывающего?

+0

Позвольте вызывающему приложению поместить его имя пакета в использованное намерение. – greenapps

+0

Я понимаю. Но внешнее приложение не содержит имя пакета в входящем пакете, и по дизайну внешняя команда, которая разрабатывает это приложение, не хочет его отправлять. Единственная информация, которую я получаю, - это имя приложения. – paddy

+0

Вы этого не говорили раньше. Почему нет? Откуда вы знаете имя приложения? – greenapps

ответ

3

Вы можете сделать это, если приложение было начато с Activity#startActivityForResult с помощью Activity#getCallingActivity().

+0

Ничего себе, что работает. Спасибо! – paddy

+0

Awesome. Пожалуйста. – droidpl