글이 길어서 짤리네 추가
return retVal;
}
void mango210_led_exit(void)
{
printk("[DEV] mango210_led_exit() is called.n");
unregister_chrdev(MANGO210_LED_MAJOR_NUMBER, MANGO210_LED_DEVICE_NAME);
led_1_off();
}
module_init(mango210_led_init);
module_exit(mango210_led_exit);
/* 안드로이드 어플리케이션 */
package com.crz.mangoLED;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.util.Log;
import android.view.View.Listener;
import android.widget.TextView;
public class Mango210LedApp extends Activity {
static{
System.loadLibrary("mango210LedApp");
} // JNI library load
public native int Mango210LedOpen();
public native int Mango210LedClose();
public native int Mango210LedControl(int ledNum, int ledOnOff);
public native int unimplementedMango210LedOpen();
public native int unimplementedMango210LedClose();
public native int unimplementedMango210LedControl(int ledNum, int ledOnOff);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main);
final Button off = (Button)findViewById(R.id.button2);
on.setListener(new Button.Listener(){
public void (View v){
showTempMsg("LED on ^_^");
Mango210LedOpen();
Mango210LedControl(1,1);
}
});
off.setListener(new Button.Listener(){
public void (View v){
showTempMsg("LED off T_T");
Mango210LedOpen();
Mango210LedControl(1,0);
Mango210LedClose();
}
});
}
private void showTempMsg(String strData) {
Toast tmpToast = Toast.makeText(this, strData, Toast.LENGTH_SHORT);
tmpToast.show();
}
} /* JNI 소스 */
#include <jni.h>
#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
static int g_mango210_led_dev;
#define MANGO210_LED_DEVICE_NAME "/dev/mango210_led_device"
/*
jstring
Java_com_crz_mangoLED_Mango210LedApp_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}*/
jint Java_com_crz_mangoLED_Mango210LedApp_Mango210LedOpen(JNIEnv *env, jobject thiz)
{
g_mango210_led_dev = open(MANGO210_LED_DEVICE_NAME, O_RDWR|O_NDELAY);
if(g_mango210_led_dev < 0){
return -1;
}
return 0;
}
댓글 0