Kaynağa Gözat

定位服务询问优化

master
zhaodengke 1 gün önce
ebeveyn
işleme
ed2e46531f
2 değiştirilmiş dosya ile 36 ekleme ve 2 silme
  1. +12
    -2
      app/src/main/java/com/nsgk/ruralWeb/EnvWindowObject.java
  2. +24
    -0
      app/src/main/java/com/nsgk/ruralWeb/FullscreenActivity.java

+ 12
- 2
app/src/main/java/com/nsgk/ruralWeb/EnvWindowObject.java Dosyayı Görüntüle

@@ -68,8 +68,18 @@ public class EnvWindowObject
{
if(ActivityCompat.checkSelfPermission(m_context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(m_context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)
{
Toast.makeText(m_context, "请先允许定位服务", Toast.LENGTH_LONG).show();
ContextUtils.RequestLocationPermission((Activity) m_context, 0x1001);
Activity activity = (Activity) m_context;

if (activity.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_FINE_LOCATION) && activity.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION)) // do not ask
{
Toast.makeText(m_context, "请先允许定位服务", Toast.LENGTH_LONG).show();
ContextUtils.RequestLocationPermission(activity, FullscreenActivity.PERMISSION_LOCATION_REQUEST_CODE);
}
else
{
activity.requestPermissions(new String[] { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION }, FullscreenActivity.PERMISSION_LOCATION_REQUEST_CODE);
}

return lastLocation;
}



+ 24
- 0
app/src/main/java/com/nsgk/ruralWeb/FullscreenActivity.java Dosyayı Görüntüle

@@ -2,6 +2,7 @@ package com.nsgk.ruralWeb;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
@@ -10,10 +11,13 @@ import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;

import com.just.agentweb.AgentWeb;
import com.just.agentweb.DefaultWebClient;
import com.nsgk.ruralWeb.utils.ContextUtils;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

@@ -23,6 +27,7 @@ import androidx.appcompat.app.AppCompatActivity;
* status bar and navigation/system bar) with user interaction.
*/
public class FullscreenActivity extends AppCompatActivity {
public static final int PERMISSION_LOCATION_REQUEST_CODE = 0x1001;


private AgentWeb mAgentWeb;
@@ -118,6 +123,25 @@ public class FullscreenActivity extends AppCompatActivity {
super.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_LOCATION_REQUEST_CODE) {
int granted = 0;
for(int i = 0; i < permissions.length; i++)
{
boolean b = grantResults[i] == PackageManager.PERMISSION_GRANTED;
Log.i("NSGK", String.format("请求权限: %s -> %s", permissions[i], b ? "通过" : "拒绝"));
if(b)
granted++;
}
if (granted < permissions.length) {
Toast.makeText(this, "需要定位权限", Toast.LENGTH_LONG).show();
ContextUtils.RequestLocationPermission(this, FullscreenActivity.PERMISSION_LOCATION_REQUEST_CODE);
}
}
}

private Preference GetPreference()
{
if(null == preference)


Yükleniyor…
İptal
Kaydet