6

画面がオフのときのオーディオストリーミングが妨げられないように、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();
}   
4

3 に答える 3