Is it possible to broadcast an Intent from native code? If so, is there documentation and/or sample code pertaining to the relevant APIs?
I think there is nothing complicated in broadcasting message from native code but only in case if the native function is called from Android Java application so you can pass a Context. As far as I know there is no such thing as Context for purely native applications therefore you can not broadcast an intent.
Even a pure native application can broadcast an Intent. That means, even when native activity is the launcher, we can still broadcast Intents.
You will need to call it by calling the Java API function - there is no JNI interface for intents.
First look up the class for Intent
, then look up the methods for constructing intents and broadcasting them, and call them.
EDIT: Here is an incomplete example. jniEnv
is passed into all your JNI functions.
jclass activityClass = jniEnv->FindClass("android/app/Activity");
jmethodID startAcitivtyMethod = jniEnv->GetMethodID(activityClass , "startActivity", "(Landroid/content/Intent;)V");
jniEnv->CallVoidMethod(yourActivityObject, startAcitivityMethod, yourIntentObject);