Intent-Filter это путь!
В вашем AndroidManifest.xml вы должны сообщить Android, что ваше приложение может ответить на такое намерение.
Пример:
<application ... >
<activity ... >
<intent-filter>
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
</intent-filter>
</activity>
</application>
Чем ваша деятельность может получить доступ к данным Intents при вызове.
Пример:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// get intent-data
Intent intent = getIntent();
if (Intent.ACTION_SENDTO.equals(intent.getAction())) {
Toast.makeText(this, intent.getDataString(), Toast.LENGTH_LONG).show();
}
// close activity
finish();
}
С помощью этого кода вы можете выбрать приложение в качестве приемника, когда другое приложение (например, контакты), выстреливает такой Intent.
Примера уволить такой Intent (Скриншот из списка контактов):
Хотя я согласен с ответом, указывая вам на '<намерения фильтра>', я очень скептически, что ' 'ответ, который является хорошим, использовать. Если у вас уже установлен Whatsapp, установите [приложение App Browser] (https://play.google.com/store/apps/details?id=com.japanesecrackers.appbrowser), и вы можете проверить манифест Whatsapp, чтобы узнать, что они могут быть там, которые привязывали бы их к приложению контактов. –
CommonsWare
Я думаю, что 'намерение-фильтр', безусловно, правильный путь для достижения этого. Я совершенно уверен, что это - по крайней мере часть решения WhatsApps. – DaniEll