Commit 1c5a00f5 authored by 宋永孟's avatar 宋永孟

add 添加权限管理

parent d3852bcf
......@@ -16,4 +16,5 @@
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
package com.yidian.shenghuoquan.newscontent.ui
import android.Manifest
import android.Manifest.permission.ACCESS_BACKGROUND_LOCATION
import android.content.Intent
import android.os.Bundle
import com.orhanobut.hawk.Hawk
......@@ -108,13 +109,14 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListC
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE,
ACCESS_BACKGROUND_LOCATION
)
.subscribe {
if (it) {
ToastUtil.showToast(this, "请在设置里同意读取存储卡权限")
launcher()
} else {
launcher()
ToastUtil.showToast(this, "请在设置里同意读取存储卡权限")
}
}
......
package com.yidian.shenghuoquan.newscontent.ui
import android.content.Context
import android.location.Location
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import com.amap.api.maps.AMap
import com.amap.api.maps.AMap.OnMyLocationChangeListener
import com.amap.api.maps.MapView
import com.amap.api.maps.model.CustomMapStyleOptions
import com.amap.api.maps.model.MyLocationStyle
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding
import kotlinx.android.synthetic.main.activity_select_address.*
import java.io.IOException
import java.io.InputStream
/**
......@@ -18,9 +18,9 @@ import java.io.InputStream
* Date: 2021/6/24 2:10 PM
* Describe:
*/
class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() {
class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyLocationChangeListener {
private lateinit var mapView: MapView
private val mapStyleOptions = CustomMapStyleOptions()
private var myLocationStyle: MyLocationStyle? = null
var aMap: AMap? = null
......@@ -39,9 +39,13 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() {
if (aMap == null) {
aMap = mapView.map
setUpMap()
}
setMapCustomStyleFile(this)
//设置SDK 自带定位消息监听
aMap!!.setOnMyLocationChangeListener(this)
aMap!!.myLocationStyle = myLocationStyle!!.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE)
viewBind.selectAddBackBtn.setOnClickListener {
......@@ -67,25 +71,44 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() {
viewBind.map.onDestroy();
}
private fun setMapCustomStyleFile(context: Context) {
val styleName = "style.data"
var inputStream: InputStream? = null
try {
inputStream = context.assets.open(styleName)
val b = ByteArray(inputStream.available())
inputStream.read(b)
if (mapStyleOptions != null) {
// 设置自定义样式
mapStyleOptions.setStyleData(b)
}
} catch (e: IOException) {
e.printStackTrace()
} finally {
try {
inputStream?.close()
} catch (e: IOException) {
e.printStackTrace()
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
viewBind.map.onSaveInstanceState(outState)
}
/**
* 设置一些amap的属性
*/
private fun setUpMap() {
// 如果要设置定位的默认状态,可以在此处进行设置
myLocationStyle = MyLocationStyle()
aMap!!.myLocationStyle = myLocationStyle
aMap!!.uiSettings.isMyLocationButtonEnabled = true // 设置默认定位按钮是否显示
aMap!!.isMyLocationEnabled = true // 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
}
override fun onMyLocationChange(location: Location?) {
// 定位回调监听
if (location != null) {
Log.e("amap", "onMyLocationChange 定位成功, lat: " + location.getLatitude() + " lon: " + location.getLongitude())
val bundle: Bundle = location.getExtras()
if (bundle != null) {
val errorCode = bundle.getInt(MyLocationStyle.ERROR_CODE)
val errorInfo = bundle.getString(MyLocationStyle.ERROR_INFO)
// 定位类型,可能为GPS WIFI等,具体可以参考官网的定位SDK介绍
val locationType = bundle.getInt(MyLocationStyle.LOCATION_TYPE)
/*
errorCode
errorInfo
locationType
*/Log.e("amap", "定位信息, code: $errorCode errorInfo: $errorInfo locationType: $locationType")
} else {
Log.e("amap", "定位信息, bundle is null ")
}
} else {
Log.e("amap", "定位失败")
}
}
}
......@@ -17,6 +17,13 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--用于访问网络,网络定位需要上网-->
<meta-data
android:name="design_width_in_dp"
......@@ -41,7 +48,7 @@
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="您的key" />
android:value="0b8dd2229f4568b508e51865e402e04a" />
<!-- 以下为友盟分享基本配置信息 start-->
<provider
android:name="androidx.core.content.FileProvider"
......@@ -203,6 +210,7 @@
</intent-filter>
</receiver>
<service
android:name="com.umeng.message.UmengMessageIntentReceiverService"
android:exported="true"
......@@ -237,15 +245,17 @@
</intent-filter>
</service>
<service android:name="com.amap.api.location.APSService"></service>
<service
android:name="com.umeng.message.UmengDownloadResourceService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" />
<!--此处注意下包名💊-->
<!-- <provider-->
<!-- android:name="com.umeng.message.provider.MessageProvider"-->
<!-- android:authorities="${application_id}.umeng.message"-->
<!-- <provider-->
<!-- android:name="com.umeng.message.provider.MessageProvider"-->
<!-- android:authorities="${application_id}.umeng.message"-->
<!-- android:exported="false">-->
<!-- <grant-uri-permission android:pathPattern=".*" />-->
<!-- </provider>-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment