Android : Samsung Galaxy Tabs and Android 2.2 Devices Showing GPS date 1 Day Advance from 1st jan 2012

こ雲淡風輕ζ 提交于 2019-11-28 07:21:00

This seems to be affecting all stock Samsung firmwares, i am logging a concern with Samsung about this. It seems to be isolated to Samsung devices. So if you can test on another device, or install custom firmware. both of those have worked for me. and your code looks good, nothing wrong there, this is a firmware issue

EDIT: I have contacted the Korean Engineers - they have said they weren't aware of the problem but have patched and it should be fixed in the latest update for the SGS and other affected products. (unless of course that device hasn't had an update for a while - so not sure about the SGT) They have said the problem lies with the devices using Broadcomm chips...so yeah

Use the above code. it seems to work for me will have to check it on a few other devices but yeah

I suspect that Samsung were hoping that it was a leap year issue which would just go away after March 1st, 2012.

Sorry to disappoint - but it hasn't! We have been seeing this problem with the app PhoneTrack installed on Samsung phones since January 1st and it is still there today.

Hopefully, Samsung will now act responsibly and issue updates for all devices affected by this GPS driver bug.

I hit this bug on my Nexus S running Android 4.0.3 (annoyingly causing a whole bunch of data to be incorrectly timestamped).

I was upgraded to 4.0.4 yesterday and this seems to have fixed the issue. Not sure if there is a plan to issue fixes to previous Android versions.

A real howler of a bug though...

It worked for me and I replaced IsValid(String strNMEA) method with this function:

private boolean checksum(String strNMEA)
    {
        int checksum = 0;

        strNMEA = strNMEA.replace("\r", "");
        strNMEA = strNMEA.replace("\n", "");

        String strChecksum = strNMEA.substring(strNMEA.indexOf("*") + 1);

        String str = strNMEA.substring(1, strNMEA.indexOf("*"));

        for (int i = 0; i < str.length(); i++) {
            checksum = checksum ^ str.charAt(i);
        }

        return checksum == Integer.valueOf(strChecksum, 16);

    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!