2
私は現在、学校/試験目的でアプリケーションを開発中です。 私はAndroid Studio 2.0を使用しています。OPOと5.1.1を使用し、Nexus 7と6.0.1を使用しています。学校プロジェクトのためのAndroid Studio/OSMDroidガイドが必要
目的は、デバイスの位置を地図上に表示し、ウェイポイント(カルチャービルディング)を通過するルートをトレースすることです。
は、私は地図表示も問題(私は私の町で、優れたズームレベルでそれをセンタリングすることができるよ)
を持っていない今、私は、デバイスの現在位置を表示したいです。 私は..権限で問題が発生した
私のマニフェスト:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="alpha.testmap">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
// AUTORISATIONS
<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_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
マイMainActivity.java:
package alpha.testmap;
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import org.osmdroid.api.IMapController;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
public class MainActivity extends Activity {
private LocationManager mLocMgr;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
//Can't find the class of this fonction --> REQUEST_LOCATION);
}else {
Location myLocation = LOCATION_SERVICE.FusedLocationApi.getLastLocaation(mGoogleApiClient);
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
//Can't find the class of this fonction --> REQUEST_LOCATION);
}
setContentView(R.layout.activity_main);
MapView map = (MapView) findViewById(R.id.map);
map.setTileSource(TileSourceFactory.MAPNIK);
//Adding zoom ability
map.setBuiltInZoomControls(true);
map.setMultiTouchControls(true);
//Create a default point
IMapController mapController = map.getController();
mapController.setZoom(16);
GeoPoint ptStart = new GeoPoint(47.215576, -1.549089);
mapController.setCenter(ptStart);
GeoPoint ptTourLu = new GeoPoint(47.21545, -1.54624);
//GPS
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 100, (LocationListener) this);
}
}
権限でどのような問題が発生しましたか?詳細に言及してください。あなたの問題を誰かに説明するたびに人生の良いルールとして、他人を何も知らない赤ちゃんのように考えてください。他の人に理解させる努力をしてください。 – Skynet
私のデバイスの場所を取得しようとしています。私は権限が付与されているかどうか、requestPermissionsの最後のパラメータが... ActivityCompat.requestPermissions(これ、 新しいString [] {} Manifest.permission.ACCESS_COARSE_LOCATION、 REQUEST_LOCATION)をコンパイルしませんテストしています ; – tomytr96
例のosmdroidプロジェクトをチェックしてください。あなたのコードには重要なMyLocationOverlayがありません。MyLocationOverlayはあなたの場所の地図上にアイコンを配置します。 – spy