Obsolete
Status Update
Comments
hb...@gmail.com <hb...@gmail.com> #2
Have this issue and modifying the cfg file solved issue.
dn...@google.com <dn...@google.com> #3
Best way to identify this issue will be to stream music on Radio Apps like TuneIn or Pandora where the music cuts out exactly at sleep time.
Example : Display Sleep time set to Lock time to 30 sec and then Display Sleep time to 1 mins, the Wifi breaks at 1 mins.
This has something to do with the Sleep time.
Also, as long as the phone is unlocked or in use, the wi fi doesn't break.
Nexus 4 with 4.2.1.
Thanks
Avik
Example : Display Sleep time set to Lock time to 30 sec and then Display Sleep time to 1 mins, the Wifi breaks at 1 mins.
This has something to do with the Sleep time.
Also, as long as the phone is unlocked or in use, the wi fi doesn't break.
Nexus 4 with 4.2.1.
Thanks
Avik
en...@google.com <en...@google.com>
[Deleted User] <[Deleted User]> #4
@2 It sounds as if you simply have set your wifi to turn off when the screen turns off. Have you checked your settings in "advanced wifi settings"? The ARP issue is does not manifest itself simply by turning your screen off. Streaming would certainly just continue even with the issue present when you lock your device.
ka...@gmail.com <ka...@gmail.com> #5
Hello,
Thanks for your insights. But this is not the case.
The setting says keep the Wi Fi alive.
The way I see it, the code never receives the instruction to keep the Wifi alive even when the display goes to sleep.
The streaming is interrupted because the Wi Fi drops and starts again. This indicates there is a problem with the code. Changing Router settings is not an option.
I can tweak the phone codes myself but then I want Google to wake up.
It is a pure mismatch of understanding user requirement and finalizing technical specifications. It happens all the time in softwares.
The end users want Wi Fi to be alive even when the Display is on Sleep.
But in 4.2.1, the Sleep setting puts the Wi Fi on sleep too.
You will not observe this problem if you keep the phone awake. The Wi Fi works flawlessly.
I believe it can be fixed.
So far, there are 5 friends of mine who have taken the N4 and all of them have the same problem.
Thanks for your insights. But this is not the case.
The setting says keep the Wi Fi alive.
The way I see it, the code never receives the instruction to keep the Wifi alive even when the display goes to sleep.
The streaming is interrupted because the Wi Fi drops and starts again. This indicates there is a problem with the code. Changing Router settings is not an option.
I can tweak the phone codes myself but then I want Google to wake up.
It is a pure mismatch of understanding user requirement and finalizing technical specifications. It happens all the time in softwares.
The end users want Wi Fi to be alive even when the Display is on Sleep.
But in 4.2.1, the Sleep setting puts the Wi Fi on sleep too.
You will not observe this problem if you keep the phone awake. The Wi Fi works flawlessly.
I believe it can be fixed.
So far, there are 5 friends of mine who have taken the N4 and all of them have the same problem.
zh...@gmail.com <zh...@gmail.com> #6
@4 Thanks for explanation. From your own words, I still see what you're seeing as an entirely different issue. Even with the issue being discussed in the bug report here, the device maintains an active connection with the router at some level, whereas with you, it seems that the entire connection (read: all ports and communication with the router) becomes inactive when you turn the screen off. Almost sounds like a hardware issue of some sort rather than the device not responding to broadcast/multicast requests.
In any case, back to the topic, I can confirm this issue. The fix presented in the OP restores broadcast responses from the device. However, it can be noted that reserving a static IP at the router negates the need for requests and replies as far GMail services go, so I have chosen to keep the wifi INI at its default values, allowing Gmail to operate as it should (receving emails instantly). But, I still run the risk of various other services not working as expected in the future if the device cannot respond accordingly to broadcast/multicast requests.
In any case, back to the topic, I can confirm this issue. The fix presented in the OP restores broadcast responses from the device. However, it can be noted that reserving a static IP at the router negates the need for requests and replies as far GMail services go, so I have chosen to keep the wifi INI at its default values, allowing Gmail to operate as it should (receving emails instantly). But, I still run the risk of various other services not working as expected in the future if the device cannot respond accordingly to broadcast/multicast requests.
zh...@gmail.com <zh...@gmail.com> #7
Hey, this is being fixed in the Qualcomm driver to support ARP offload when filtering broadcast packets
Description
I got a problem on failed to get location occasionally. Although it is failed to get location on my own Android app, google map could still locate the current position. Problem still exists after kill and relaunch my app, but it could be solved after reboot the Phone.
Could anyone help? Thanks a lot!
Following is part of source code for your reference:
private LocationManager lm;
private boolean gps_enabled=false;
private boolean network_enabled=false;
private boolean got_location=false;
private static long location_time_threshold = 300000; //300000milliseconds = 5mins
private boolean getLocation() {
if(lm==null)
lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
try{network_enabled=lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);}catch(Exception ex){}
try{gps_enabled=lm.isProviderEnabled(LocationManager.GPS_PROVIDER);}catch(Exception ex){}
if(!gps_enabled && !network_enabled) {
System.out.println("failed to get from GPS and Network ");
//show err message box
return false;
}
if (!getLastLocation()) {
if(network_enabled)
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListenerNetwork);
if(gps_enabled)
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListenerGps);
System.out.println("getLocation Lat " + userLat + " Long " + userLong);
handler.postDelayed(delayForCheck, 10000);
}
return true;
}
private Runnable delayForCheck = new Runnable() {
public void run() {
if (!got_location){
if (!getLastLocation()) {
System.out.println("delayForCheck failed to get from GPS and Network ");
if (!network_enabled) {
//show err message box
} else {
//show err message box
}
}
}
}
};
LocationListener locationListenerGps = new LocationListener() {
public void onLocationChanged(Location location) {
lm.removeUpdates(this);
lm.removeUpdates(locationListenerNetwork);
got_location = true;
userLat = location.getLatitude();
userLong = location.getLongitude();
System.out.println("locationListenerGps: Lat " + userLat + " Long " + userLong);
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
LocationListener locationListenerNetwork = new LocationListener() {
public void onLocationChanged(Location location) {
lm.removeUpdates(this);
lm.removeUpdates(locationListenerGps);
got_location = true;
userLat = location.getLatitude();
userLong = location.getLongitude();
System.out.println("locationListenerNetwork: Lat " + userLat + " Long " + userLong);
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
};
private boolean getLastLocation() {
lm.removeUpdates(locationListenerGps);
lm.removeUpdates(locationListenerNetwork);
Location net_loc=null, gps_loc=null;
if(gps_enabled)
gps_loc=lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(network_enabled)
net_loc=lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if(gps_loc!=null && net_loc!=null){
if ((new Date().getTime() - net_loc.getTime()) < location_time_threshold
|| (new Date().getTime() - gps_loc.getTime()) < location_time_threshold ) {
if(gps_loc.getTime()>net_loc.getTime()) {
userLat = gps_loc.getLatitude();
userLong = gps_loc.getLongitude();
} else {
userLat = net_loc.getLatitude();
userLong = net_loc.getLongitude();
}
got_location = true;
System.out.println("getLastKnownLocationLAST: Lat " + userLat + " Long " + userLong);
return true;
}
} else if(net_loc!=null){
if ((new Date().getTime() - net_loc.getTime()) < location_time_threshold) {
userLat = net_loc.getLatitude();
userLong = net_loc.getLongitude();
got_location = true;
System.out.println("getLastKnownLocationNetwork: Lat " + userLat + " Long " + userLong);
return true;
}
} else if(gps_loc!=null){
if ((new Date().getTime() - gps_loc.getTime()) < location_time_threshold) {
userLat = gps_loc.getLatitude();
userLong = gps_loc.getLongitude();
got_location = true;
System.out.println("getLastKnownLocationGPS: Lat " + userLat + " Long " + userLong);
return true;
}
}
return false;
}