2013-08-01 3 views
0

죄송합니다.Phonegap Android - 휴대 전화에서 GPS를로드 할 수는 없지만 태블릿에서는 OK입니다.

저는 Phonegap 기반의 APP (Android 용)를 개발했습니다. Samsung Tablet 및 Lenovo Tablet에서 실행하고 잘 작동합니다 (휴대 전화 GPS 코드로 작동). 스마트 폰 Samsun Galaxy S4에서 실행할 때 GPS가 앱에서 작동하지 않습니다 (Google지도에 geolocation이 추가되지 않았 음을 표시 함).

다른 구성이 있습니까?

나쁜 영어, 다시 ...

대한 대답 SRY을 주셔서 감사합니다.

편집 :

코드 HTML지도 캔버스 :

<body onLoad="initialize()"> 
    <div data-role="header" data-theme="c" data-position="fixed" data-tap-toggle="false"> 
      <a href="" data-rel="back" data-role="button" data-icon="back" data-iconpos="notext" data-transition="slide">Atrás</a> 
      <center style="margin-top: 5px; margin-bottom: 5px;"> 
       <img src="../../img/TargetHR.png" width="65%" height="10%" /> 
      </center> 
    </div> 

    <div data-role="content" height="100%"> 
    <center> 
       <table width="80%" height="30%" > 
        <tr> 
         <td 
          style="height: 70px; font-size: 1em; color: #4A6169; line-height: 27px"> 
          <b>Nombres: </b> Edgar Luis<br /> 
          <b>Apellidos: </b> Padilla Rivera<br /> 
          <b>Fecha/Hora: </b> <br /> 
          <b>Estado: </b> <div id="estado" style="display: inline;"></div><br /> 
         </td> 
         <td align="center"> <div id="btnRegistro" data-role="button" data-mini="true">Registrar</div> </td> 
        </tr> 
       </table><br/> 
       </center> 
     <div id="map-canvas" style="height:600px; width: 100%;"></div> 
    </div> 

코드의 .js (신체 초기화()) :

기능 초기화() {

if(google === undefined) { 
     alert("Google Maps no se ha cargado"); 
    } else { 

     // OPCIONES DEL MAPA 
     var mapOptions = { 
      center : new google.maps.LatLng(-12.105833, -76.970801), 
      zoom : 17, 
      panControl : true, 
      zoomControl : true, 
      scaleControl : true, 
      streetViewControl : true, 
      mapTypeId : google.maps.MapTypeId.ROADMAP 
     }; 

     var map = new google.maps.Map(document.getElementById("map-canvas"), 
       mapOptions); 

     map.setTilt(45); 

     // POLIGONO OFICINA - PUNTOS 
     var poligono = [ 
       new google.maps.LatLng(-12.106510, -76.970516), 
       new google.maps.LatLng(-12.106421, -76.970409), 
       new google.maps.LatLng(-12.106476, -76.970360), 
       new google.maps.LatLng(-12.106554, -76.970465)  ]; 

     // POLIGONO OFICINA - PINTAR EN MAPA 
     var of = new google.maps.Polygon({ 
      paths : poligono, 
      strokeColor : "#FF0000", 
      strokeOpacity : 0.8, 
      strokeWeight : 2, 
      fillColor : "#FF0000", 
      fillOpacity : 0.35 
     }); 

     of.setMap(map); 


     // POLIGONO EDIFICIO - PUNTOS 
     var edificio = [ 
       new google.maps.LatLng(-12.105181, -76.971031), 
       new google.maps.LatLng(-12.105052, -76.970988), 
       new google.maps.LatLng(-12.105013, -76.971087), 
       new google.maps.LatLng(-12.105129, -76.971138)  ]; 

     // POLIGONO EDIFICO - PINTAR EN MAPA 
     var ed = new google.maps.Polygon({ 
      paths : edificio, 
      strokeColor : "#FF0000", 
      strokeOpacity : 0.8, 
      strokeWeight : 2, 
      fillColor : "#FF0000", 
      fillOpacity : 0.35 
     }); 

     ed.setMap(map); 


     // MOVIL 



     navigator.geolocation.getCurrentPosition(onSuccess, onError);   

     var latMovil, lonMovil; 

     function onSuccess(position){ 
      latMovil = position.coords.latitude; 
      lonMovil = position.coords.longitude; 

      //latMovil = -12.105677; 
      //lonMovil = -76.970806; 

      var LatLonMOV = new google.maps.LatLng(latMovil, lonMovil); 

      var icono = "../../img/phones.png"; 

      var marker = new google.maps.Marker({ 
       position : LatLonMOV, 
       icon : new google.maps.MarkerImage(icono), 
       map : map 
      }); 


      if (of.Contains(LatLonMOV)) { 
       $("#estado").html("Apto para asistencia"); 
       $("#btnRegistro").show(); 
      } else { 
       if (ed.Contains(LatLonMOV)){ 
        $("#estado").html("Apto para asistencia"); 
        $("#btnRegistro").show(); 
       } else { 
        $("#estado").html("ZONA INVÁLIDA PARA EL REGISTRO"); 
        $("#btnRegistro").hide(); 
       } 
      } 

     } 

     function onError(error) { 
      alert('code: ' + error.code + '\n' + 
        'message: ' + error.message + '\n'); 
     } 



    } 
} 

AndroidManifest.xml

응용 프로그램이 무엇

`

<uses-sdk 
     android:minSdkVersion="10" 
     android:targetSdkVersion="14" /> 

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 


    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:configChanges="orientation|screenSize|keyboardHidden" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.version.Main_Activity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

`

16,는 이 회사의 시스템에 도움을 등록 (U가) 영역을 제한? 않습니다. 영역은 일부 다각형으로 설정됩니다.

여기

, 태블릿합니다 (GPS '작품'이십 기가 바이트)에서 SS와 스마트 폰 http://imageshack.us/g/541/ylce.png/

+0

코드 없음 .. 대답 없음 ..--) –

+0

야, 뭐라구? AndroidManifest.xml? .HTML 파일? .. 특정 코드? –

+0

야, 그런 막연한 질문으로 우리가 어떻게 도와 줄 수 있다고 상상합니까? GPS를 어떻게여십시오,지도에 포인트를 두는가? 나는 텔레파시 헬멧을 잊어서 코드를 읽고 문제가 어디 있는지 알려 주겠다. –

답변

0

에서이 phonegap geolocation allways fail on timeout 관련이있는 것으로 보이지만, 다시 부팅 나를 위해 그것을 해결되지 않았다.

Phonegap의 Geolocation 플러그인에 관한 Samsung Galaxy 전화에 버그가있는 것 같습니다. 어떤 사람들은 here 일을하는 것처럼 보이지만 그것은 나를 위해 문제를 해결하지 못했습니다. 그러나, 내 HTC 전화에서 동일한 코드가 그냥 잘 작동!

관련 문제