2017-08-10 7 views
0

問題: 私はAndroid Wear 2.0でHuawei Watchを持っています。私のアプリはWiFi経由でデータを送信する必要がありますが、時計はWi-Fiから非常に速く切断されます。ウォッチをWifiに接続しておくにはどうすればいいですか?Android WearにWiFiを接続してください

マニフェスト:アクティビティで

<uses-feature android:name="android.hardware.wifi" /> 

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

public static void keepWiFiOn(Context context, boolean on) { 
    if (wifiLock == null) { 
     WifiManager wm = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); 
     if (wm != null) { 
      wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL, TAG); 
      wifiLock.setReferenceCounted(true); 
     } 
    } 
    if (wifiLock != null) { // May be null if wm is null 
     if (on) { 
      wifiLock.acquire(); 
      Log.d(TAG, "Acquired WiFi lock"); 
     } else if (wifiLock.isHeld()) { 
      wifiLock.release(); 
      Log.d(TAG, "Released WiFi lock"); 
     } 
    } 
} 

のWiFiロックが取得されるが、データが送信されているにもかかわらず、他の側で受信されていません。

+0

エラーがログに記録されているため、接続が解除されている理由がわかりますか? – noogui

+0

@noogui残念ながら。設定メニューのWi-Fiに接続して接続すると、アプリを起動してアプリを終了して設定画面に戻り、Wi-Fiが接続されていないことがわかります –

答えて

0

このような「バッテリ節約」動作をデバイスの設定で防ぐことができます。 この場合、環境設定でこのモードを有効にし、ウェアラブルとハンドヘルドの間の接続を無効にします(たとえば、Bluetoothを無効にする)。

コードでこれを行うことはできません。

関連する問題