2016-04-26 15 views
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); 

} 

}

+0

権限でどのような問題が発生しましたか?詳細に言及してください。あなたの問題を誰かに説明するたびに人生の良いルールとして、他人を何も知らない赤ちゃんのように考えてください。他の人に理解させる努力をしてください。 – Skynet

+0

私のデバイスの場所を取得しようとしています。私は権限が付与されているかどうか、requestPermissionsの最後のパラメータが... ActivityCompat.requestPermissions(これ、 新しいString [] {} Manifest.permission.ACCESS_COARSE_LOCATION、 REQUEST_LOCATION)をコンパイルしませんテストしています ; – tomytr96

+0

例のosmdroidプロジェクトをチェックしてください。あなたのコードには重要なMyLocationOverlayがありません。MyLocationOverlayはあなたの場所の地図上にアイコンを配置します。 – spy

答えて

0

権限を持つあなたの問題は、Androidにもたらし変化に起因しています6.0では、以前のようにインストール時に要求するのではなく、実行時に許可を求める必要があります。

「マニフェスト」セクションのhereを読むことができます。

関連する問題