Просмотр исходного кода

定位服务询问优化

master
zhaodengke 1 день назад
Родитель
Сommit
ed2e46531f
2 измененных файлов: 36 добавлений и 2 удалений
  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 Просмотреть файл

@@ -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) 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; return lastLocation;
} }




+ 24
- 0
app/src/main/java/com/nsgk/ruralWeb/FullscreenActivity.java Просмотреть файл

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


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


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


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


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




private AgentWeb mAgentWeb; private AgentWeb mAgentWeb;
@@ -118,6 +123,25 @@ public class FullscreenActivity extends AppCompatActivity {
super.onActivityResult(requestCode, resultCode, data); 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() private Preference GetPreference()
{ {
if(null == preference) if(null == preference)


Загрузка…
Отмена
Сохранить