$cordovaGeolocation getCurrentPosition always timing out!

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

var deferred = $q.defer();
var posOptions = {timeout: 31000, enableHighAccuracy: false, maximumAge: 90000};
  .then(function (position) {
  }, function (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 !