2016-03-18 13 views
-1

Android uygulamasında yerel işlevi uygulamam gerekiyor.Yerel İşlev Android Uygulamasını ve C Uygulamasını Uygula

Fonksiyon:

public native int RFIDPower (String path, String data); 

public void RFIDPowerEnable(boolean isEnable){ 
String path = "/dev/RFID_enable"; 
if (isEnable)  
RFIDPower(path, “1”); 
else 
RFIDPower(path, “0”); 
} 

VE BU C kodu IS: Deneyin NDK samples bakarak

JNIEXPORT jint JNICALL Java_com_winmate_demo_main_RFIDPower (JNIEnv * env, jobject thiz, jstring path, jstring data) 
{ 
int fd = 0; 
const char *cPath, *cData; 
if (path == NULL) return -1; 
// Convert jstring to char pointer 
cPath = (*env)->GetStringUTFChars(env, path, NULL); 
cData = (*env)->GetStringUTFChars(env, data, NULL); 
// Open node “/dev/RFID_enable” 
fd = open(cPath, O_WRONLY | O_NOCTTY | O_NDELAY | O_NONBLOCK); 
if (fd < 0) { 
(*env)->ReleaseStringUTFChars(env, path, cPath); 
(*env)->ReleaseStringUTFChars(env, data, cData); 
return -1; 
} 
write(fd, cData, strlen(cData)); 
(*env)->ReleaseStringUTFChars(env, path, cPath); 
(*env)->ReleaseStringUTFChars(env, data, cData); 
close(fd); 
return 0; 
} 
+0

Ve senin sorunun ne? Çöküyor mu? Kilitlenmiyor ama çalışmıyor mu? Ne yapması gerekiyor? –

+0

Proje robotumda C kodunu nasıl uygulayacağımı bilmiyorum. – Andrea

+0

Ancak C kodunuz zaten var. Peki sorun ne? – Michael

cevap

0

. hello-jni örneği, NDK’ya yeni olduğunuzda özellikle kullanışlıdır.

Android Studio'da C++ geliştirme için yeni bir destek geliyor, ancak şu an yapı sisteminin çoğu deneysel. Deneysel desteği kullanmakla ilgileniyorsanız, bunun yerine NDK samples here'a başvurmalısınız.

İlgili konular