Reduce permissions and simplify CameraActivity for Huawei install compatibility
This commit is contained in:
@@ -8,7 +8,6 @@
|
|||||||
|
|
||||||
<!-- 位置权限 -->
|
<!-- 位置权限 -->
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
||||||
|
|
||||||
<!-- 硬件功能声明 -->
|
<!-- 硬件功能声明 -->
|
||||||
<uses-feature android:name="android.hardware.camera" android:required="true" />
|
<uses-feature android:name="android.hardware.camera" android:required="true" />
|
||||||
@@ -20,7 +19,6 @@
|
|||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.LogCam"
|
android:theme="@style/Theme.LogCam"
|
||||||
android:requestLegacyExternalStorage="true"
|
|
||||||
tools:targetApi="q">
|
tools:targetApi="q">
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.example.app
|
package com.example.app
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
|
import android.content.SharedPreferences
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
@@ -10,12 +10,9 @@ import android.graphics.Canvas
|
|||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.Paint
|
import android.graphics.Paint
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.location.Geocoder
|
|
||||||
import android.location.Location
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Looper
|
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.widget.*
|
import android.widget.*
|
||||||
@@ -28,8 +25,6 @@ import androidx.camera.lifecycle.ProcessCameraProvider
|
|||||||
import androidx.camera.view.PreviewView
|
import androidx.camera.view.PreviewView
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import com.google.android.material.snackbar.Snackbar
|
|
||||||
import java.io.ByteArrayOutputStream
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.OutputStream
|
import java.io.OutputStream
|
||||||
@@ -77,8 +72,6 @@ class CameraActivity : AppCompatActivity() {
|
|||||||
// 请求权限
|
// 请求权限
|
||||||
if (allPermissionsGranted()) {
|
if (allPermissionsGranted()) {
|
||||||
startCamera()
|
startCamera()
|
||||||
// 初始化位置管理器
|
|
||||||
initLocationManager()
|
|
||||||
} else {
|
} else {
|
||||||
ActivityCompat.requestPermissions(
|
ActivityCompat.requestPermissions(
|
||||||
this, REQUIRED_PERMISSIONS, REQUEST_CODE_PERMISSIONS
|
this, REQUIRED_PERMISSIONS, REQUEST_CODE_PERMISSIONS
|
||||||
@@ -93,31 +86,6 @@ class CameraActivity : AppCompatActivity() {
|
|||||||
cameraExecutor = Executors.newSingleThreadExecutor()
|
cameraExecutor = Executors.newSingleThreadExecutor()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initLocationManager() {
|
|
||||||
locationManagerHelper = LocationManagerHelper(this)
|
|
||||||
// 尝试获取最后已知位置
|
|
||||||
locationManagerHelper?.getLastKnownLocation { location ->
|
|
||||||
this.currentLocation = location
|
|
||||||
}
|
|
||||||
|
|
||||||
// 开始实时位置更新
|
|
||||||
locationManagerHelper?.requestLocationUpdates { location ->
|
|
||||||
this.currentLocation = location
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressLint("MissingPermission")
|
|
||||||
private fun getCurrentLocation(): Location? {
|
|
||||||
return currentLocation
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDestroy() {
|
|
||||||
super.onDestroy()
|
|
||||||
// 停止位置更新
|
|
||||||
locationManagerHelper?.stopLocationUpdates()
|
|
||||||
cameraExecutor.shutdown()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun allPermissionsGranted() = REQUIRED_PERMISSIONS.all {
|
private fun allPermissionsGranted() = REQUIRED_PERMISSIONS.all {
|
||||||
ContextCompat.checkSelfPermission(baseContext, it) == PackageManager.PERMISSION_GRANTED
|
ContextCompat.checkSelfPermission(baseContext, it) == PackageManager.PERMISSION_GRANTED
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user