Android: Как транслировать намерение из собственного кода?

Возможно ли транслировать Intent из собственного кода? Если да, существует ли документация и/или пример кода, относящегося к соответствующим API-интерфейсам?

Ответ 1

Вам нужно будет вызвать его, вызвав функцию Java API - нет интерфейса JNI для намерений.

Сначала найдите класс для Intent, затем найдите методы построения намерений и передайте их и вызовите их.

EDIT: Вот неполный пример. jniEnv передается во все ваши функции JNI.

jclass activityClass = jniEnv->FindClass("android/app/Activity");
jmethodID startAcitivtyMethod = jniEnv->GetMethodID(activityClass , "startActivity", "(Landroid/content/Intent;)V");
jniEnv->CallVoidMethod(yourActivityObject, startAcitivityMethod, yourIntentObject);

Ответ 2

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

Ответ 3

Даже чистое родное приложение может транслировать Intent. Это означает, что даже когда нативная активность является пусковой установкой, мы все еще можем транслировать намерения.