Nokia在标准的J2ME API的基础上,在所有Nokia的手机中扩展了一个功能,这些功能以扩展API的形式提供给开发人员,这些扩展API就是著名的Nokia UI API。
关于Nokia UI API的文档,可以在Nokia Developer’s Suit安装目录下的\Devices下的任意一个模拟器的docs目录中找到。
DeviceControl类是一个控制手机背景灯闪烁以及手机震动的类,该类属于com.nokia.mid.ui包,在使用以前需要引入该包。其中包含的主要方法有:
1、flashLights
该方法的方法声明如下:
public static void flashLights(long duration)
该方法的作用是临时闪烁屏幕背景灯duration参数指定的毫秒数。
该方法调用以后不会阻塞线程的执行,如果设备不支持该方法,则该方法会自动返回,如果设置的时间超过设备支持的最大时间,则自动在闪烁最大时间以后返回。
该方法返回时,会自动返回到闪烁以前的状态。
想结束该方法的执行,可以使用flashLights(0)来实现。
其中参数:
duration——指闪烁的毫秒数。如果该数字小于0,则抛出IllegalArgumentException。
使用示例:
DeviceControl. flashlights(3000);
该代码的作用是设置背景灯闪烁3秒钟。
2、setLights
该方法的声明如下:
public static void setLights(int num, int level)
该方法的作用是设置屏幕背景灯的亮度。
其中参数:
num——0代表显示背景灯,其他参数暂时保留。
level——亮度等级,0-100之间的数字,0代表关闭,100是最大的亮度。
实际使用示例:
DeviceControl. setLights(0,60);
该代码的作用是设置背景灯的亮度为60。
3、startVibra
该方法的声明如下:
public static void startVibra(int freq, long duration)
该方法的作用是使手机产生震动效果。
该方法不会阻塞程序的执行,在调用该方法以后,程序会自动返回。
其中参数:
freq——震动的频率,1-100之间的数字,100表示最大震动频率。
duration——震动持续的时间,单位是豪秒。
使用示例:
DeviceControl. startVibra (50,1000);
该代码的作用是使手机以50的频率震动1秒钟。
4、stopVibra
该方法的声明如下:
public static void stopVibra()
该方法的作用是停止手机的震动,如果手机没有处于震动状态,则该方法安静的返回。
实际使用示例:
DeviceControl. stopVibra();
其实,其他的厂商扩展API中也实现了类似的功能,只是表达形式不同罢了。