[DESCRIPTION]

如何打开/关闭RDS

[SOLUTION]

目前没有宏来切换RDS的开启与关闭,如果需要修改的话必须通过修改代码来完成。具体如下:
1、Fmradioservice在启动过程中会调用isRDSSupported()从而调用native 层的isRDSsupport()来获取RDS的开关状
态,如下代码片段:
public boolean isRDSSupported() {
boolean isRDSSupported = (FMRadioNative.isRDSsupport() == 1);
LogUtils.d(TAG, "FMRadioService.isRDSSupported: " + isRDSSupported);
return isRDSSupported;
}直接修改上层APK上的接口isRDSSupported即可。
2、Natvie 层isRDSsupport()会调用drivr端的设定,如下:
case FM_IOCTL_RDS_SUPPORT: {
fm_s32 support = FM_RDS_ENABLE;
WCN_DBG(FM_NTC | MAIN, "FM_IOCTL_RDS_SUPPORT\n");
if (copy_to_user((void*)arg, &support, sizeof(fm_s32))) {
ret = -EFAULT;
goto out;
}
break;
由上面这段代码可以看到driver端默认RDS为打开状态。
通过以上的描述可以看到,打开/关闭 RDS有两种方式:
方法一:在Fmradioservice --> isRDSSupported 中直接将变量isRDSSupported值修改掉。0:关闭RDS,1:打开RDS
方法二: 修改driver端的设定,即native层将case FM_IOCTL_RDS_SUPPORT中fm_s32 support = FM_RDS_ENABLE值改掉
, 0:关闭RDS, 1:打开RDS


欢迎评论









原文链接:http://bbs.×××/thread-55148-1-1.html