一、我先整理下在底层关于FM驱动的Lib库,首先要想好在底层我们要准备好提供上层的JNI接口。
我目前想到如下几个接口:
1.fm_power_on(); 打开FM;
2.fm_power_off(); 关掉FM;
3.fm_search_freq(int frq, char up); FM自动搜台,并跳到下一个台的位置;
4.fm_get_freq(); FM得到当前电台的频率;
5.fm_set_mute(); 设置FM静音;
6.fm_set_volue(int value); 设置FM的音量大小;
这些函数实现后,编译成动态库(生成.so文件)。
二、在framework/base/core/jni目录下实现一个.cpp文件把lib库调用,实现FM的一些工作,这个jni就会直接给mangerserver,最上面的apk应用会调用Manger层,而manger和mangerserver之间的通信是通过IPC机制实现的。