Android geliştirmede tamamen yeniyim, ancak daha önce Java (ve diğer programlama dilleri) ile çalıştım.Neden AndroidManifest izinleri benim uygulamada ayarlanmadı
Uygulamamı geliştirmek için Android Studio kullanıyorum ve Konum bilgilerine (http://developer.android.com/training/location/index.html) erişme konusunda geliştirici eğitimini takip ederken takıldım. Ben Konum hizmetleri android.permission.ACCESS_COARSE_LOCATION
ve/veya android.permission.ACCESS_FINE_LOCATION
izinler gerektirdiğini biliyoruz ama benim ApplicationManifest başvurumun ekleyerek üzerine hala sorun yaşıyorsanız insanların diğer bazı örneklerine rastlamak ettik
java.lang.SecurityException: Client must have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location operations.
SecurityException çöküyor, ancak bu genellikle yanlış yerleştirme (java.lang.SecurityException: Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission), yanlış yazım (ACCESS_FINE_LOCATION AndroidManifest Permissions Not Being Granted) veya izin dizesinin yanlış büyük harf kullanımı sonucu olmuştur. İşte
Hatta uygulama bir HTTP sunucusu ile iletişim kurmak için gerekli olduğu gibi bu gerçekleştireceği (diğer SecurityExceptions neden olur olmadığını görmek için ACCESS_NETWORK_STATE ve INTERNET kaldırmak denedim<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="scd.tt" >
<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_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="23" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher_tt_v2"
android:label="@string/app_name"
android:theme="@style/TT_Theme">
<activity
android:name=".MainActivity"
android:theme="@style/TT_Theme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LoginActivity" android:theme="@style/TT_Theme.NoActionBar" />
<activity android:name=".IndexActivity" />
</application>
</manifest>
benim ApplicationManifest.xml olduğunu başarıyla) Konum bilgisi almak için girişimler alır.
AndroidManifest'teki izinlere yaptığım değişiklikler programı çalıştırdığım zaman güncelleştirilmiyor gibi görünüyor. Ayrıca Build menüsünü kullanarak uygulamayı temizlemeyi ve yeniden oluşturmayı denedim.
UPDATE:
Aktivite çekirdek; Benpackage scd.tt;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.location.Location;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
import java.util.Map;
/**
* Created by Liam on 08/09/2015
*/
public class IndexActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {
private GoogleApiClient mGoogleApiClient;
private LocationRequest mLocationRequest;
private Location mLastLocation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_index);
if(debug) Log.d(TAG, "onCreate() called: savedInstanceState is " + (savedInstanceState == null ? "null" : "not null"));
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(1000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
buildGoogleApiClient();
if (findViewById(R.id.index_fragment_container) != null) {
if (savedInstanceState != null) return;
Fragment index = new IndexFragment();
index.setArguments(getIntent().getExtras());
getFragmentManager().beginTransaction().add(R.id.index_fragment_container, index).commit();
}
}
@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}
@Override
protected void onStop() {
super.onStop();
mGoogleApiClient.disconnect();
}
@Override
public void onConnected(Bundle bundle) {
if(debug) Log.d(TAG, "onConnected");
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
startLocationUpdates();
}
@Override
public void onConnectionSuspended(int i) {
if(debug) Log.d(TAG, "Connection Suspended");
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
if(debug) Log.d(TAG, "Connection Failed");
}
@Override
public void onLocationChanged(Location location) {
mLastLocation = location;
}
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
if(debug) Log.d(TAG, "buildGoogleAPIClient()");
}
protected void startLocationUpdates() {
LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
}
}
Bu programı bir taklitçide çalıştırıyor musunuz? – Actiwitty
Şu ana kadarki aktivitede hangi kod var? – fractalwrench
Evet, uygulama test için bir emülatörde çalıştırılıyor. API/SDK 23 sürümünü kullanan bir x86 platformunda Nexus 5'e dayanmaktadır. –