因为最近一直忙项目,没有时间来更新文档,今天抽空来写一点,但愿你们能够学习使用!java
这一章固然仍是来分析FM模块的源码。FmReceiver.java数组
publicFmReceiver(String devicePath,FmRxEvCallbacksAdaptor callback) throwsInstantiationException {
mControl = new FmRxControls();
mRxEvents = new FmRxEventListner();
//registerClient(callback);
mCallback = callback;
}异步
/**注册一个回调为调频接收机事件通知。
* < p >
*这是一个同步命令用于注册的事件通知调频接收机的司机。自调频驱动异步执行一些任务,该功能容许客户端异步接收信息。
* < p >
*在调用该函数时,客户机必须经过一个回调函数用来实现异步事件。必须非空值参数的回调。若是一个NULL值传递给这个函数,注册将会失败。
* < p >
*客户端能够选择哪些事件将从接收器发送司机只需实现事件但愿接收的功能。
* < p >
* @param回调事件回调处理事件的调频接收机。函数
* @return真若是回调注册,假若是回调注册失败了。
*初始化失败。
* < p >
* @see #收购
*@see # unregisterClient学习
**/.net
public boolean registerClient(FmRxEvCallbacks callback){
boolean status;
status = super.registerClient(callback);
/* Do Receiver Specific Stuff here.*/
return status;
}接口
/**
* 使调频装置在接收模式。
* <p>
* 这是一个同步的方法用于初始化调频接收机。若是已经初始化该函数将intialize接收者使用默认设置。只有在成功地调用这个函数的许多调频设备接口可使用。
* <p>
* 使接收者时,客户机还必须提供的区域设置接收器将运做。这些设置(包括参数configSettings)一般用于设置调频接收机操做在一个特定的地理区域。这些设置能够更改后启用调频驱动程序经过使用函数{ @link #配置}。
* <p>事件
* 这个命令只能出具一个调频接收器的全部者。发出这个命令,客户机必须首先成功叫{ @link #得到}。
* <p>
* @param configSettings设置打开收音机时应用
* @return真若是初始化成功了,假若是初始化失败。
* <p>
*@see #启用
*@see # registerClient
*@see #禁用
*
*/ci
public boolean enable (FmConfig configSettings)文档
/ * *
*重置调频装置。
* < p >
*这是一个同步命令用于重置调频装置的状态不可恢复的错误。这个函数时将使用客户端收到意想不到的广播通知禁用。曾称,大多数调频装置提供的功能将被禁用,直到客户端还能够从新开启设备再次经过{ @link #可用}。
* < p >
*@return真若是复位成功了,假若是重置失败了。
@see #启用
@see #禁用
@see # registerClient
* /
publicboolean reset()
/ * *
*禁用调频装置。
* < p >
*这是一个同步命令用于禁用调频装置。时这个函数将使用客户端再也不须要使用调频装置。曾称,大多数调频装置提供的功能将被禁用,直到客户端还能够从新开启设备再次经过{ @link #可用}。
* < p >
* @return真若是禁用成功了,假若是禁用失败了。
@see #启用
@see # registerClient
* /
publicboolean disable()
/ * *
*获取当前搜索操做的状态。
* < p >
时这个函数将使用searchStations()函数想知道是否寻求/扫描/自动选择操做已经正在进行。
若是一个寻求命令时发出一个已经正在进行,咱们取消正在寻求命令和开始新的搜索操做。
* < p >
* @return调频搜索操做的当前状态:
* SRCH_COMPLETE
* SRCH_INPROGRESS
* SRCH_ABORTED
* /
static int getSearchState()
/ * *
*设置搜索操做的当前状态。
* < p >
*这个函数是用于设置当前状态的搜索操做。若是一个寻求命令时发出一个已经正在进行,咱们取消正在寻求命令,搜索操做的状态设置为SRCH_ABORTED和开始新的搜索。
* < p >
* @return没有
* /
static void setSearchState(int state)
/ * *
*启动基本的寻求和扫描操做。
*
* < p >
*使用此命令来调用一个基本寻求/ FM无线电频段的扫描
* < p >
* < ul >
*这个API用于:<李>调用基本寻求操做({ @link # FM_RX_SRCH_MODE_SEEK })<李>调用基本的扫描操做({ @link # FM_RX_SRCH_MODE_SCAN })
* < / ul >
* < p >
*这个函数执行的最基本的操做是一个{ @link # FM_RX_SRCH_MODE_SEEK }的命令。递增或递减的寻求过程处理频率在预约义的通道的步骤(由信道间隔定义)和测量获得的信号电平。一旦成功调站,发现为了达到或超过这个信号电平,寻求操做将完成和FmRxEvSearchComplete事件将返回给客户端。若是没有发现匹配搜索标准站,频率将会回到最初调谐。
* < p >
*因为寻求老是致使频率调谐,每一个寻求操做也将返回一个FmRxEvRadioTuneStatus事件到客户机/应用程序层。
*
* < p >
就像{ @link # FM_RX_SRCH_MODE_SEEK },{ @link # FM_RX_SRCH_MODE_SCAN }命令能够比做许多背靠背寻求一段住在每一个成功的追求。一旦发布,扫描将增量或减量的频率定义信道间隔直到找到站达到或超过搜索阈值集。一旦发现本站,并成功地调整,FmRxEvRadioTuneStatus事件将返回给客户端,车站仍将调整为特定的时间内由参数dwellPeriod表示。时间到期后,FmRxEvSearchInProgress事件将被发送到客户端和一个新的将开始寻找下一站符合搜索阈值。后扫描整个乐队,或取消后搜索已经由客户端发起,FmRxEvRadioTuneStatus事件将被发送到客户端。相似于寻求命令,每一个扫描将致使至少一个站被调整,即便这是起始频率。
* < p >
*每次司机启动搜索(寻求或扫描)客户端将经过一个FmRxEvSearchInProgress事件通知。一样,每次搜索完成后,客户端将经过一个FmRxEvRadioTuneStatus事件通知。
* < p >
*搜索能够在任什么时候候被取消使用API cancelSearch()。一旦取消,每一个搜索将调到最后一站和生成FmRxEvSearchComplete和FmRxEvRadioTuneStatus事件。有效参数值“模式”:
* < ul >
* <li>{@link #FM_RX_SRCH_MODE_SEEK}
* <li>{@link #FM_RX_SRCH_MODE_SCAN}
* < / ul >
* < p >
*有效参数值“dwellPeriod”:
* < ul >
* <li>{@link #FM_RX_DWELL_PERIOD_1S}
* <li>{@link #FM_RX_DWELL_PERIOD_2S}
* <li>{@link #FM_RX_DWELL_PERIOD_3S}
* <li>{@link #FM_RX_DWELL_PERIOD_4S}
* <li>{@link #FM_RX_DWELL_PERIOD_5S}
* <li>{@link #FM_RX_DWELL_PERIOD_6S}
* <li>{@link #FM_RX_DWELL_PERIOD_7S}
* < / ul >
* < p >
*有效参数值“方向”:
* < ul >
* <li>{@link #FM_RX_SEARCHDIR_DOWN}
* <li>{@link #FM_RX_SEARCHDIR_UP}
* < / ul >
* < p >
* @param模式调频的搜索模式。
@param dwellPeriod调频扫描住时间。只有当使用
模式= { @link # FM_RX_SRCH_MODE_SCAN }
@param方向搜索方向。
* < p >
* @return真若是搜索启动成功了,假若是搜索启动失败。
@see # searchStations(int,int,int,int,int)
@see # searchStationList
* /
public boolean searchStations (int mode,int dwellPeriod,int direction)
public boolean searchStations (int mode,int dwellPeriod,int direction,int pty,int pi)
/ * *启动站列表搜索操做。
* < p >该方法将初启搜索,生成基于强和弱电台的频率列表中发现的调频乐队。
* < p >
* < ul >
*这个API是用于生成站列表包括:
* <li>强站(FM_RX_SRCHLIST_MODE_STRONGFM_RX_SRCHLIST_MODE_STRONGEST)
* <li>弱站(FM_RX_SRCHLIST_MODE_WEAKFM_RX_SRCHLIST_MODE_WEAKEST)
* < / ul >
* < p >
*扫描的频率范围取决于当前组乐队。司机搜索全部有效站在乐队和完成后,返回一个频道列表基于客户的选择。客户端能够选择搜索中最强的电台列表乐队,乐队最弱的电台,或第N强弱。经过设置maximumStations参数,客户端能够限制返回的频率数在列表中。若是用户指定参数maximumStations 0,搜索将生成站的最大数量。
* < p >
*驱动每次启动一个基于列表的搜索,客户端将经过一个FmRxEvSearchInProgress事件通知。相似地,每一次基于列表搜索完成后,客户端将经过一个FmRxEvSearchListComplete事件通知。
* < p >
*完成搜索,最初调谐站将调谐和事件将生成以下:FmRxEvSearchListComplete——搜索完成。FmRxEvRadioTuneStatus——re-tuned最初的频率。
* < p >
*一旦发出搜索命令,多个命令从客户机可能不容许,直到搜索完成或取消。
* < p >
搜索能够在任什么时候候被取消使用API cancelSearch()。取消搜索视为完成搜索和事件将生成以下:FmRxEvSearchComplete——搜索完成。FmRxEvRadioTuneStatus——re-tuned最初的频率。
* < p >
* 有效参数值“模式”:
* < ul >
* <li> { @link #FM_RX_SRCHLIST_MODE_STRONG }
* <li> { @link #FM_RX_SRCHLIST_MODE_WEAK }
* <li> { @link #FM_RX_SRCHLIST_MODE_STRONGEST }
* <li> { @link #FM_RX_SRCHLIST_MODE_WEAKEST }
* <li> FM_RX_SRCHLIST_MODE_PTY(未来会实现吗)
* < / ul >
* < p >
*有效参数值“方向”:
* < ul >
* <li>{@link #FM_RX_SEARCHDIR_DOWN}
* <li>{@link #FM_RX_SEARCHDIR_UP}
* < / ul >
* < p >
* 有效参数值“maximumStations”:1 - 12
< p >
*@param模式调频的搜索模式。
@param方向搜索方向。
@param maximumStations站的最大数量,能够从搜索返回。这个参数被忽略和12站返回FM_RX_SRCHLIST_MODE_STRONGEST或FM_RX_SRCHLIST_MODE_WEAKEST若是搜索模式
@param企业调频RDS搜索程序类型(目前不使用)
* < p >
* @return真若是搜索启动成功了,假若是搜索启动失败。
@see # searchStations(int,int,int)
@see # searchStations(int,int,int,int,int)
* /
public boolean searchStationList (int mode,int direction,int maximumStations,int pty)
/ * *
*取消正在进行的搜索操做 (扫描,寻找searchlist等等)。
* < p >
*这种方法应该用于取消以前启动搜索(例如基本寻求/扫描,RDS寻求/扫描、搜索列表,等)。
* < p >
一旦完成,这个命令将生成一个FmRxEvSearchCancelledtr事件全部注册的客户。这个事件后,客户端还能够接收搜索事件正在进行相关搜索正在完成。
*
* < p >
* @return真若是取消搜索启动成功,假若是取消搜索启动失败。
@see # searchStations(int,int,int)
@see # searchStations(int,int,int)
@see # searchStationList
* /
关闭搜索更改状态
publicboolean cancelSearch ()
/ * *
*容许调频接收机静音和非静音。
* < p >
*这是一个同步命令用于静音或un-mute FM音频。这个命令减弱来自FM音频设备。重要的是要注意,这只会影响调频音频而不是其余音频系统被使用。
* < p >
* @param沉默的模式设置应用模式
* < p >
@return真若是setMuteMode调用放置成功,假若是setMuteMode失败了。
@see #启用
@see # registerClient
* /
public boolean setMuteMode (int mode)
/ * *
*FM的单声道/立体声模式设置。
*
* < p >
*此命令容许用户设置的单声道/立体声模式调频装置。使用此功能,用户能够容许单声道/立体声混音或单声道音频的接待。
@param stereoEnable如此:支持立体声,Mono错误的:力量
@return真若是setStereoMode调用放置成功,假若是setStereoMode失败了。
* /
public boolean setStereoMode (booleanstereoEnable)
返回当前的RDS / RBDS计划服务
publicFmRxRdsData getPSInfo()
/ * *
*此函数返回一个频率的列表。
*
* < p >
*该方法得到的结果{ @link # searchStationList }。这种方法应该调用FmRxEvSearchListComplete时调用。
* < p >
*@return整数数组,对应的频率搜索电台
@see # searchStationList
* /
public int[] getStationList ()
/ * *
*此函数返回当前设备的信号强度
*
* < p >
*该方法返回当前的信号强度调谐。
* < p >
* 目前@return RSSI的调谐
* /
public intgetRssi()