1

PCと通信して動作する産業用制御アプリがあります。このアプリは、Samsung Media Player (電話のない携帯電話のようなもの) と Samsung Galaxy 10.1 タブレットの 2 つのデバイスで実行できます。

ディスプレイがタイムアウトすると、CPU と WiFi がオフになり、PC との通信が中断されるという問題がありました。ユーザーがデバイスを下に置いた場合、たとえば休憩やトイレに行った場合にディスプレイがオフになることは問題ありません。これにより、バッテリーの電力が節約されますが、WiFi は引き続き機能する必要があります。そこで、 を追加しました。. .

private PowerManager.WakeLock wakelock;
private WifiManager.WifiLock wifilock;

...その後、初期化中に、

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CPUOnly");
wakelock.acquire();
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifilock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "WifiLock");
wifilock.acquire();

そしてマニフェストで:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

これは、メディア プレーヤーで機能します。しかし、タブレットの同じコードは効果がないようです-ディスプレイが消えると、WiFiも消えます. メディア プレーヤーは Android 2.3.5 (Gingerbread) を実行しており、タブレットは Android 4.0.3 (Ice Cream Sandwich) を実行しています。

これらの 2 つのデバイスでこれが異なる動作をする理由と、それを修正するためにできることはありますか? 前もって感謝します!

4

0 に答える 0