2017-09-24 140 views
0

我试图激活使用弹出我的设备,而不去设置页面我的设备上的位置;我尝试了多种堆栈溢出解决方案,但似乎没有任何工具可以打开我的模拟器或设备位置。
我的位置代码如下:模拟器位置

OnRequest:

@Override 
public void onRequestPermissionsResult(int requestCode, @NonNull 
String[] permissions, @NonNull int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ 

     if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){ 

      permission. its an array becayse it can be multiple permissions 


      locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0 , 0, locationListener); 
     } 


    } 


} 

主营:

locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 


    locationListener = new LocationListener() { 
     @Override 
     public void onLocationChanged(Location location) { 

      Log.i("location",""+location.toString()); 
     } 

     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) { 

     } 

     @Override 
     public void onProviderEnabled(String provider) { 

     } 

     @Override 
     public void onProviderDisabled(String provider) { 

     } 
    }; 
if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){ 

    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION} ,1); 


}else{ 
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0 , 0, locationListener); 

} 

清单:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

建设摇篮:

compile 'com.android.support:support-v4:25.0.0' 
compile 'com.google.android.gms:play-services-maps:10.2.4' 
compile 'com.google.android.gms:play-services-location:10.2.4' 

回答

0

在主类中修改这个:

if(ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){ 

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION} ,1); 
return; 
}else{ 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0 , 0, locationListener); 
} 
+0

嘿,我试图将这段代码仍然是位置没有被我的代码打开。如果你打算使用你的工作室和模拟器,这是否会打开,在你身边? –

+0

您无法通过模拟器中的GPS获取当前位置。在设备中运行应用程序以确保它可以正常工作。 –

+0

啊是的,我试图在两者还是一样的结果无法为它打开programmaticly –

0

1)删除运行时间许可,尝试有棉花糖之前发布的任何版本的Android设备上运行的应用程序相关的代码。这样,您将了解的问题是否与运行时间许可或不

2)你可以试试这个库来实现运行时间的权限。它非常简单易用。 https://github.com/Karumi/Dexter