죄송합니다.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/
코드 없음 .. 대답 없음 ..--) –
야, 뭐라구? AndroidManifest.xml? .HTML 파일? .. 특정 코드? –
야, 그런 막연한 질문으로 우리가 어떻게 도와 줄 수 있다고 상상합니까? GPS를 어떻게여십시오,지도에 포인트를 두는가? 나는 텔레파시 헬멧을 잊어서 코드를 읽고 문제가 어디 있는지 알려 주겠다. –