aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/jni/main.c22
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;