diff options
Diffstat (limited to 'app/src/main/jni')
| -rw-r--r-- | app/src/main/jni/main.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/src/main/jni/main.c b/app/src/main/jni/main.c index 0afa0cd..0fa7be7 100644 --- a/app/src/main/jni/main.c +++ b/app/src/main/jni/main.c @@ -36,6 +36,28 @@ JNIEXPORT void JNICALL Java_com_arslaancodes_mokuassistant_AssistantService_stop LOGI("stopAssistant called"); } +void request_mic_permission(struct android_app *app) { + JNIEnv *env; + JavaVM *jvm = app->activity->vm; + + (*jvm)->AttachCurrentThread(jvm, &env, NULL); + + jclass activity_class = (*env)->GetObjectClass(env, app->activity->clazz); + jmethodID request_permissions = (*env)->GetMethodID(env, activity_class, "requestPermissions", "([Ljava/lang/String;I)V"); + + jstring perm_string = (*env)->NewStringUTF(env, "android.permission.RECORD_AUDIO"); + jobjectArray perm_array = (*env)->NewObjectArray(env, 1, (*env)->FindClass(env, "java/lang/String"), perm_string); + + (*env)->CallVoidMethod(env, app->activity->clazz, request_permissions, perm_array, 0); + + (*env)->DeleteLocalRef(env, perm_string); + (*env)->DeleteLocalRef(env, perm_array); + + (*jvm)->DetachCurrentThread(jvm); + + LOGI("Mic permission requested"); +} + void request_notification_permission(struct android_app *app) { JNIEnv *env; JavaVM *jvm = app->activity->vm; |
