wifiLock i wakeLock nie działają poprawnie na Androidzie
Zajmuję się tworzeniem aplikacji, która musi używać zarówno wifiLock, jak i wakeLock, aby strumieniowanie audio, gdy ekran jest wyłączony, nie było zakłócane. Wypróbowałem swoją aplikację na Androida 2.3 i wakeLock i wygląda na to, że wifiLock działa zgodnie z oczekiwaniami, więc nie ma różnicy między tym, kiedy ekran jest włączony, czy wyłączony, ale ta sama aplikacja na Androida 4.2 (Jelly-bean), gdy ekran zgaśnie, nie jest działa również i dźwięk staje się niestabilny, co pokazuje, że wakeLock lub wifiLock nie działają poprawnie. Czy jest ku temu jakiś powód?
Oto jak zdobywam i zwalniam zamki, w mojej głównej działalności mam:
@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();
}