2015-10-11 3 views
0

Я пытаюсь получить текущее местоположение пользователя (проверено в genymotion и фактическом устройстве Android), но всегда получает ошибку {"nativeException": {}}. Я проверяю его с GPS включен и мой вид модели код ниже, чтобы получить доступ к местоположениюМестонахождение Nativescript не работает?

var observable = require("data/observable"); 
var locationModule = require("location"); 
var LocationManager = new locationModule.LocationManager(); 


var enums = require('ui/enums'); 

var MainViewModel = (function (_super) { 
    __extends(MainViewModel, _super); 
    function MainViewModel() { 
     _super.call(this); 

    } 

    MainViewModel.prototype.signIn = function() { 
     //alert("Me"); 
     alert(JSON.stringify(LocationManager)); 
     alert(JSON.stringify(enums.Accuracy)); 
     var locationOptions = { 
      desiredAccuracy: enums.Accuracy.high, 
      updateDistance: 0, 
      minimumUpdateTime: 5000, 
      maximumAge: 20000 
     }; 
     LocationManager.startLocationMonitoring(function (location) { 
      console.log("Location received: " + location); 
      alert(JSON.stringify(location)); 
     }, function (error) { 
      alert("Location error received"); 
      alert(JSON.stringify(error)); 
     }, locationOptions); 
    }; 

    return MainViewModel; 
})(observable.Observable); 
exports.MainViewModel = MainViewModel; 
exports.mainViewModel = new MainViewModel(); 

Это мой AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="org.nativescript.myapp" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <supports-screens 
     android:smallScreens="true" 
     android:normalScreens="true" 
     android:largeScreens="true" 
     android:xlargeScreens="true"/> 

    <uses-sdk 
     android:minSdkVersion="17" 
     android:targetSdkVersion="22"/> 

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

    <application 
     android:name="com.tns.NativeScriptApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.tns.NativeScriptActivity" 
      android:label="@string/title_activity_kimera" 
      android:configChanges="keyboardHidden|orientation|screenSize"> 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="com.tns.ErrorReportActivity"/> 
    </application> 

</manifest> 

ответ

1

Моя ставка будет то, что вы не установили разрешения в вашем AndroidManifest.xml (в NativeScript 1.3.0: platforms/android/src/main).

Вы хотите иметь линию, глядя, как это:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
+0

только что обновил мой вопрос с AndroidManifest.xml включены все еще получаю ту же ошибку –

+0

Это работает. Я просто изменил линию от решения ура до этого Большое спасибо. –

+0

Wops, извините! Была опечатка. Хорошее пятно! –

Смежные вопросы