diff options
| author | Arslaan Pathan <[email protected]> | 2026-08-16 21:25:21 +1200 |
|---|---|---|
| committer | Arslaan Pathan <[email protected]> | 2026-08-16 21:25:21 +1200 |
| commit | a01f01f610fccbff5fb555f34c9d192aaeab8140 (patch) | |
| tree | 05c0013ffe20015ef2b48880f17266137be46bf7 /app/src/main | |
| parent | 138561e95059b1924437a1dccc2a9c30c05f59f5 (diff) | |
| download | moku-assistant-a01f01f610fccbff5fb555f34c9d192aaeab8140.tar.xz moku-assistant-a01f01f610fccbff5fb555f34c9d192aaeab8140.zip | |
[feat] add mic permission function
Diffstat (limited to 'app/src/main')
| -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; |
