0

現在、私のアプリは音楽をストリーミングする必要があります。私は Web サーバーを使用していますが、電話が起動しているか、電源に接続されていれば、すべてが機能します。

しかし、電話がスリープ状態になるまでストリーミングを続ける必要があります。電話を起動したままにするために、PowerManager PowerManager.WakeLock を使用しています。

これは私のコードの一部です:

pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
        wl.setReferenceCounted(true);

その後wl.acquire();、リリースがあります。曲のストリーミングが停止してから 5 分後にリリースするハンドラーがあります。

int timeToWait = 300000;
turnOffDevice.sendEmptyMessageDelayed(0, timeToWait);

しかし、それはしばらくの間機能し、その後曲がジャンプし始め、ほとんどの場合曲が停止します。

4

1 に答える 1

0

こんにちは、私はすでに問題を解決しました。問題はwifiにあり、しばらくするとスリープしていたので、wifilockを追加し、WIFI_MODE_FULL_HIGH_PERFを使用しているクラスのコンストラクターで、このフラグを使用してデバイスを回避し、wifiをオフにしました

wifilock = manager.createWifiLock(3,TAG);// WIFI_MODE_FULL_HIGH_PERF

唯一の問題は、このフラグが API 12 以降でしか利用できないことですが、今のところ、私のプロジェクトでは大した問題ではありません。このリンクで詳細情報が必要な場合WIFI_MODE_FULL_HIGH_PERF

于 2013-08-28T13:52:43.580 に答える