2013-02-16 4 views
1

wifiLock과 wakeLock을 모두 사용해야하는 앱을 개발 중이므로 화면이 꺼져있을 때 오디오 스트리밍이 방해받지 않습니다. Android 2.3 및 wakeLock에서 내 앱을 사용해 보았는데 wifiLock 작동이 예상대로 작동하므로 화면이 켜지거나 꺼지는 시점의 차이는 없지만 화면이 꺼지면 Android 4.2 (젤리 빈)의 동일한 앱이 잘 작동하지 않으며 wakeLock 또는 wifiLock 중 하나가 제대로 작동하지 않는 것을 나타내는 오디오가 고르지 않게됩니다. 이것에 대한 이유가 있습니까? 당신은 활동의 잠금을 획득하는wifiLock 및 wakeLock이 Android에서 올바르게 작동하지 않습니다.

@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(); 
} 

답변

0

을하고 활동이 스택에 갈 때 시스템은 제거하고 파괴 할 수있다 : 나는 취득하고 내 주요 활동에서 내가 가진, 잠금을 해제 방법은 다음과

입니다 귀하의 활동과 귀하의 문제의 원인 일 수 있습니다. 서비스에서 잠금을 획득하십시오. 하지만 PARTIAL 잠금 장치와 WIFI의 조합은 일부 장치에서 제대로 작동하지 않습니다.이 질문을보십시오. Android WifiLock not working?

1

나는이 질문을 우연히 만났습니다. OP에 비해 너무 늦은 것 같습니다.

wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF , "MyWifiLock"); 

아마 너무 Service 대신의 Activity에서 오디오를 스트리밍보고 싶은데 당신이 나타납니다 특히, : 그 스트리밍 문제를 일으킬 수있는 다른 사람이, 당신은 아마, WIFI_MODE_FULL 대신 WIFI_MODE_FULL_HIGH_PERF를 사용할 필요가 있습니다 백그라운드에서 실행하는 아이디어로 디자인 할 수 있습니다.

+0

WIFI_MODE_FULL_HIGH_PERF이 (가) 올바른 대답이며 새 TCP 수신 연결을 수락 할 수 있습니다. – Poppyto