我正在开发一款应用程序,需要同时使用wifiLock和wakeLock,以便在屏幕关闭时进行音频流传输而不会受到干扰。我已经在Android 2.3上尝试了我的应用程序,wakeLock和wifiLock都能够按预期工作,因此无论屏幕是否打开都没有区别,但是在Android 4.2(Jelly-bean)上,当屏幕关闭时,同一款应用程序不能很好地工作,音频会变得不连贯,这表明wakeLock或wifiLock未能正确工作。这是为什么呢?
这里是我获取和释放锁的方式,在我的主活动中:
这里是我获取和释放锁的方式,在我的主活动中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "MyWirelessHeadphone");
WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL , "MyWifiLock");
...
}
@Override
protected void onDestroy() {
super.onDestroy();
if (wakeLock.isHeld()==true)
wakeLock.release();
if (wifiLock.isHeld()==true)
wifiLock.release();
}