$cordovaGeolocation getCurrentPosition always timing out!

Hello,
I am using a Galaxy S3 as my device.
> SetLocation: function () {

var deferred = $q.defer();
var posOptions = {timeout: 31000, enableHighAccuracy: false, maximumAge: 90000};
$cordovaGeolocation
  .getCurrentPosition(posOptions)
  .then(function (position) {
    deferred.resolve(position);
  }, function (err) {
    console.log(err);
    deferred.reject(err);
  });
return deferred.promise;

},

I am always getting the timeout error (Code 3 Position Error), i tried rebooting the device, also tried different options for timeout and enableHighAccuracy,maximumAge. Still no luck.

Cordova version : 5.4
Ionic version : 1.7.8
Android version 4.4.2

Note: (This use to work when i was in older Ionic/Cordova version ! )
WhiteList Plugin is also installed.
Anything else i need to do to make this work ?

Thanks !