下手な英語でごめんなさい。
Phonegap (Android 用) に基づいて APP を開発しました。Samsung タブレットと Lenovo タブレットで実行し、正常に動作します (phonegap の GPS コードで動作します)。スマートフォン Samsung Galaxy S4 で実行すると、アプリで GPS が機能しません (追加された Google マップに地理位置情報を表示しません)。
他に行うべき設定はありますか?
回答ありがとうございます...
繰り返しますが、下手な英語をおねがいします。
編集:
コード HTML map-canvas:
<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 (本体の initialize() ):
関数の初期化() {
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>
`
アプリは何をしますか?: 会社のシステムに援助を登録するために地域 (あなたがいる場所) を制限します。エリアはいくつかのポリゴンによって設定されます。
ここでは、タブレット (GPS が「動作」) とスマートフォンからの SS http://imageshack.us/g/541/ylce.png/