0

携帯電話の位置を確認したいAdroidアプリを作成しました。エミュレーターを起動してアプリをインストールしましたが、確認するたびに失敗します。エミュレーターに問題がありますか(実際の携帯電話ではないため)、または正しく実行しませんでした。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
                <title>Hello World</title>
        <script type="text/javascript" src="cordova-2.1.0.js"></script>
        <script text="text/javascript">
        function startUp(){
            document.getElementById("H1").innerHTML = "Checking your location...";
           document.addEventListener("deviceready", onDeviceReady, false)
        }
        function onDeviceReady() {
        navigator.geolocation.getCurrentPosition(onSuccess, onError);
    }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('location');
        element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                            'Longitude: '          + position.coords.longitude             + '<br />' +
                            'Altitude: '           + position.coords.altitude              + '<br />';
                            document.getElementById("H1").innerHTML = "";
    }

    // onError Callback receives a PositionError object
    //
    function onError(error) {
        document.getElementById("H1").innerHTML = "Fail to check your location.";
    }

        </script>
    </head>
    <body style="margin:0px;" onload="startUp()" bgcolor="#000">
        <div class="app" style="background-color:#4D4D4D">
            <font color="#FF9900" size="2"><h1 id="H1" style="font-family:courier new;"></h1></font>
            <p id="location"></p>
        </div>



    </body>
</html>

HTML5ファイルとconfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
    <widget xmlns = "http://www.w3.org/ns/widgets"
        xmlns:gap = "http://phonegap.com/ns/1.0"
        id        = "com.park.manager"
        versionCode="10" 
        version   = "0.1.9">
    <name>ParkingManager</name>
    <description>
        A system, which manages parking side areas.
    </description>
    <author href="" email="">
        Parking Side Manager Team
    </author>
    <preference name="phonegap-version" value="2.1.0" />
    <preference name="orientation" value="landscape" />
    <preference name="target-device" value="universal" />
    <preference name="fullscreen" value="true" />
    <preference name="android-installLocation" value="auto" />
    <icon src="icon.png" />
    <gap:splash src="splash.png" />
    <feature name="http://api.phonegap.com/1.0/geolocation"/>
    <feature name="http://api.phonegap.com/1.0/network"/>

</widget>
4

3 に答える 3

0

マニフェストXMLに、粗い場所と細かい場所のアクセス許可を追加していることを確認してください。

電話のギャップには利点がありますが、マニフェストを手動で実行する必要があるなど、主な問題のいくつかは修正されません。これらの権限を追加する方法を知る前に、Javaでアプリを作成した場合。使用しない場合は、その方法を確認してください。権限

あなたのcordovageolaction呼び出しが正しいことに加えて、私は彼らの例から以前にそれを使用しました。

于 2012-11-07T20:22:36.727 に答える
0

エミュレーターです。エミュレーターは、何を正しく機能させるかを知るのが面倒なので、実際の電話が必要です。あなたのJavascriptとhtmlは問題ありません。

于 2013-04-01T21:14:37.123 に答える
0

前回 PhoneGap を使用したとき、マニフェストには既にマニフェスト ファイルで適切なアクセス許可が設定されていました。

ほとんどの場合、エミュレーターにモック データを提供する必要があります。 http://developer.android.com/guide/topics/location/strategies.html#MockData

于 2012-11-07T20:24:50.403 に答える