Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中获取当前纬度和经度值_Android - Fatal编程技术网

在android中获取当前纬度和经度值

在android中获取当前纬度和经度值,android,Android,我正在尝试执行的操作:在日志中记录当前纬度和经度值 我所做的::我已将协调员推到android Emulator上 我无法执行的操作::我无法查看输出中的日志值 MainActivity.java public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance

我正在尝试执行的操作:在日志中记录当前纬度和经度值

我所做的::我已将协调员推到android Emulator上

我无法执行的操作::我无法查看输出中的日志值


MainActivity.java

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        LocationListener ll = new Mylocationlistener();

        boolean isGPS = lm
                .isProviderEnabled(LocationManager.GPS_PROVIDER);

        // If GPS is not enable then it will be on
        if(!isGPS)
        {
            Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
            intent.putExtra("enabled", true);
            sendBroadcast(intent);
        }

        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
    }
    private class Mylocationlistener implements LocationListener {
        @Override
        public void onLocationChanged(Location location) {
            if (location != null) {
                Log.d("LOCATION CHANGED", location.getLatitude() + "");
                Log.d("LOCATION CHANGED", location.getLongitude() + "");
                float speed = location.getSpeed();
                double altitude = location.getAltitude();
                Toast.makeText(MainActivity.this,"Latitude = "+
                        location.getLatitude() + "" +"Longitude = "+ location.getLongitude(),Toast.LENGTH_LONG).show();

                Log.d("---Latitude - Log ",""+location.getLatitude());
                Log.d("---Latitude - Log ",""+location.getLongitude());
            }

        }

        @Override
        public void onProviderDisabled(String provider) {
        }

        @Override
        public void onProviderEnabled(String provider) {
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
    }
}
更新 清单

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

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

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.presentcityname.MainActivity"
            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>

</manifest>


onLocationChanged(Location-Location)
在这个方法中,如果在emulator中运行应用程序,您将得到Location始终为null。

您在哪里运行它???@user3243147…我在emulatorok中运行它在real Device上运行它,但在onLocationChanged()中多一个日志,就在if(Location!=null)的顶部跟踪在馈送位置时是否触发此回调。以及如何推送值?通过emulator控件的手动选项?如何在清单中添加此权限?你可以自己用emulator控件试试。不正确,如果他通过DDMS传递loc,它应该可以正常工作是的。。。。我已经通过DDMS传递了位置信息。。。是否有其他方法获取值。。。。。还有其他例子吗?@user2450263我们不知道他是如何传递位置的……如果他在该方法中放入一个日志,我们可以知道它是否为空。@Casper如果您还没有提到,请这样做,并确保您正在传递它correctly@user2450263.... 我引用了与你建议的帖子完全相同的帖子和代码