Add gioui.org/permission/bluetooth and EnableBluetooth() function.
This commit is contained in:
		
							parent
							
								
									820186e132
								
							
						
					
					
						commit
						4e4c071697
					
				| 
						 | 
					@ -3,6 +3,7 @@ package ble
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"log"
 | 
						"log"
 | 
				
			||||||
	"gioui.org/app"
 | 
						"gioui.org/app"
 | 
				
			||||||
 | 
						_ "gioui.org/permission/bluetooth"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,6 +27,42 @@ SetLoader(JNIEnv* env, jobject context) {
 | 
				
			||||||
	gFindClassMethod = (*env)->GetMethodID(env, lclass, "findClass", "(Ljava/lang/String;)Ljava/lang/Class;");
 | 
						gFindClassMethod = (*env)->GetMethodID(env, lclass, "findClass", "(Ljava/lang/String;)Ljava/lang/Class;");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jclass
 | 
				
			||||||
 | 
					FindClass(JNIEnv* env, char* name) {
 | 
				
			||||||
 | 
						jstring strClassName = (*env)->NewStringUTF(env, name);
 | 
				
			||||||
 | 
						return (*env)->CallObjectMethod(env, gClassLoader, gFindClassMethod, strClassName);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					EnableBluetooth(JNIEnv* env, jobject ctx, jobject ad) {
 | 
				
			||||||
 | 
						__android_log_write(ANDROID_LOG_DEBUG, "gio", "Finding BleUtil");
 | 
				
			||||||
 | 
						jclass cls = FindClass(env, "st/wow/git/ble/BleUtil");
 | 
				
			||||||
 | 
						if (cls == NULL) {
 | 
				
			||||||
 | 
							__android_log_write(ANDROID_LOG_DEBUG, "gio", "not found");
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						__android_log_write(ANDROID_LOG_DEBUG, "gio", "getting <init>");
 | 
				
			||||||
 | 
						jmethodID mid = (*env)->GetMethodID(env, cls, "<init>", "()V");
 | 
				
			||||||
 | 
						if (mid == NULL) {
 | 
				
			||||||
 | 
							__android_log_write(ANDROID_LOG_DEBUG, "gio", "not found");
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						__android_log_write(ANDROID_LOG_DEBUG, "gio", "calling NewObject");
 | 
				
			||||||
 | 
						jobject bleutil = (*env)->NewObject(env, cls, mid);
 | 
				
			||||||
 | 
						if (bleutil == NULL) {
 | 
				
			||||||
 | 
							__android_log_write(ANDROID_LOG_DEBUG, "gio", "failed");
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						__android_log_write(ANDROID_LOG_DEBUG, "gio", "Getting Enable()");
 | 
				
			||||||
 | 
						mid = (*env)->GetMethodID(env, cls, "Enable", "(Landroid/content/Context;)V");
 | 
				
			||||||
 | 
						if (mid == NULL) {
 | 
				
			||||||
 | 
							__android_log_write(ANDROID_LOG_DEBUG, "gio", "failed");
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						__android_log_write(ANDROID_LOG_DEBUG, "gio", "Calling Enable()");
 | 
				
			||||||
 | 
						(*env)->CallVoidMethod(env, bleutil, mid, ctx);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobject
 | 
					jobject
 | 
				
			||||||
GetBluetoothAdapter(JNIEnv* env, jobject ctx) {
 | 
					GetBluetoothAdapter(JNIEnv* env, jobject ctx) {
 | 
				
			||||||
	jclass cls = (*env)->GetObjectClass(env, ctx);
 | 
						jclass cls = (*env)->GetObjectClass(env, ctx);
 | 
				
			||||||
| 
						 | 
					@ -70,7 +106,10 @@ GetBluetoothAdapter(JNIEnv* env, jobject ctx) {
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		__android_log_write(ANDROID_LOG_DEBUG, "gio", "GetBluetoothAdapter(): Found");
 | 
							__android_log_write(ANDROID_LOG_DEBUG, "gio", "GetBluetoothAdapter(): Found");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ad = (*env)->NewGlobalRef(env, ad);
 | 
						ad = (*env)->NewGlobalRef(env, ad);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						EnableBluetooth(env, ctx, ad);
 | 
				
			||||||
	return ad;
 | 
						return ad;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -89,12 +128,6 @@ GetObjectStaticStringField(JNIEnv* env, jobject obj, char* fld) {
 | 
				
			||||||
	return (jstring)(*env)->GetStaticObjectField(env, cls, id);
 | 
						return (jstring)(*env)->GetStaticObjectField(env, cls, id);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jclass
 | 
					 | 
				
			||||||
FindClass(JNIEnv* env, char* name) {
 | 
					 | 
				
			||||||
	jstring strClassName = (*env)->NewStringUTF(env, name);
 | 
					 | 
				
			||||||
	return (*env)->CallObjectMethod(env, gClassLoader, gFindClassMethod, strClassName);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
JNIEXPORT jobject
 | 
					JNIEXPORT jobject
 | 
				
			||||||
CreateObject(JNIEnv* env, jclass cls) {
 | 
					CreateObject(JNIEnv* env, jclass cls) {
 | 
				
			||||||
	jmethodID init = (*env)->GetMethodID(env, cls, "<init>", "()V");
 | 
						jmethodID init = (*env)->GetMethodID(env, cls, "<init>", "()V");
 | 
				
			||||||
| 
						 | 
					@ -178,7 +211,7 @@ func JniCallVoidMethod(env *C.JNIEnv, obj C.jobject, methodID C.jmethodID) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func JniCallBooleanMethod(env *C.JNIEnv, obj C.jobject, methodID C.jmethodID) bool {
 | 
					func JniCallBooleanMethod(env *C.JNIEnv, obj C.jobject, methodID C.jmethodID) bool {
 | 
				
			||||||
	return C.CallBooleanMethod(env, obj, methodID) == 0
 | 
						return C.CallBooleanMethod(env, obj, methodID) == C.JNI_TRUE
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func JniCallIntMethod(env *C.JNIEnv, obj C.jobject, methodID C.jmethodID) int {
 | 
					func JniCallIntMethod(env *C.JNIEnv, obj C.jobject, methodID C.jmethodID) int {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user