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

add 添加权限管理

parent d3852bcf
...@@ -16,4 +16,5 @@ ...@@ -16,4 +16,5 @@
<!--允许程序访问CellID或WiFi热点来获取粗略的位置--> <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest> </manifest>
package com.yidian.shenghuoquan.newscontent.ui package com.yidian.shenghuoquan.newscontent.ui
import android.Manifest import android.Manifest
import android.Manifest.permission.ACCESS_BACKGROUND_LOCATION
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import com.orhanobut.hawk.Hawk import com.orhanobut.hawk.Hawk
...@@ -108,13 +109,14 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListC ...@@ -108,13 +109,14 @@ class FlashActivity : BaseActivity<ActivityFlashBinding>(), IGetLifeAccountListC
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_PHONE_STATE,
ACCESS_BACKGROUND_LOCATION
) )
.subscribe { .subscribe {
if (it) { if (it) {
ToastUtil.showToast(this, "请在设置里同意读取存储卡权限") launcher()
} else { } else {
launcher() ToastUtil.showToast(this, "请在设置里同意读取存储卡权限")
} }
} }
......
package com.yidian.shenghuoquan.newscontent.ui package com.yidian.shenghuoquan.newscontent.ui
import android.content.Context import android.location.Location
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.widget.Toast import android.widget.Toast
import com.amap.api.maps.AMap import com.amap.api.maps.AMap
import com.amap.api.maps.AMap.OnMyLocationChangeListener
import com.amap.api.maps.MapView 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.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivitySelectAddressBinding
import kotlinx.android.synthetic.main.activity_select_address.* import kotlinx.android.synthetic.main.activity_select_address.*
import java.io.IOException
import java.io.InputStream
/** /**
...@@ -18,9 +18,9 @@ import java.io.InputStream ...@@ -18,9 +18,9 @@ import java.io.InputStream
* Date: 2021/6/24 2:10 PM * Date: 2021/6/24 2:10 PM
* Describe: * Describe:
*/ */
class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() { class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>(),OnMyLocationChangeListener {
private lateinit var mapView: MapView private lateinit var mapView: MapView
private val mapStyleOptions = CustomMapStyleOptions() private var myLocationStyle: MyLocationStyle? = null
var aMap: AMap? = null var aMap: AMap? = null
...@@ -39,9 +39,13 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() { ...@@ -39,9 +39,13 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() {
if (aMap == null) { if (aMap == null) {
aMap = mapView.map aMap = mapView.map
setUpMap()
} }
setMapCustomStyleFile(this) //设置SDK 自带定位消息监听
aMap!!.setOnMyLocationChangeListener(this)
aMap!!.myLocationStyle = myLocationStyle!!.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE)
viewBind.selectAddBackBtn.setOnClickListener { viewBind.selectAddBackBtn.setOnClickListener {
...@@ -67,25 +71,44 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() { ...@@ -67,25 +71,44 @@ class SelectAddressActivity : BaseActivity<ActivitySelectAddressBinding>() {
viewBind.map.onDestroy(); viewBind.map.onDestroy();
} }
private fun setMapCustomStyleFile(context: Context) { override fun onSaveInstanceState(outState: Bundle) {
val styleName = "style.data" super.onSaveInstanceState(outState)
var inputStream: InputStream? = null viewBind.map.onSaveInstanceState(outState)
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 { * 设置一些amap的属性
try { */
inputStream?.close() private fun setUpMap() {
} catch (e: IOException) { // 如果要设置定位的默认状态,可以在此处进行设置
e.printStackTrace() 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 @@ ...@@ -17,6 +17,13 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_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 <meta-data
android:name="design_width_in_dp" android:name="design_width_in_dp"
...@@ -41,7 +48,7 @@ ...@@ -41,7 +48,7 @@
<meta-data <meta-data
android:name="com.amap.api.v2.apikey" android:name="com.amap.api.v2.apikey"
android:value="您的key" /> android:value="0b8dd2229f4568b508e51865e402e04a" />
<!-- 以下为友盟分享基本配置信息 start--> <!-- 以下为友盟分享基本配置信息 start-->
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
...@@ -203,6 +210,7 @@ ...@@ -203,6 +210,7 @@
</intent-filter> </intent-filter>
</receiver> </receiver>
<service <service
android:name="com.umeng.message.UmengMessageIntentReceiverService" android:name="com.umeng.message.UmengMessageIntentReceiverService"
android:exported="true" android:exported="true"
...@@ -237,15 +245,17 @@ ...@@ -237,15 +245,17 @@
</intent-filter> </intent-filter>
</service> </service>
<service android:name="com.amap.api.location.APSService"></service>
<service <service
android:name="com.umeng.message.UmengDownloadResourceService" android:name="com.umeng.message.UmengDownloadResourceService"
android:exported="false" android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" /> android:permission="android.permission.BIND_JOB_SERVICE" />
<!--此处注意下包名💊--> <!--此处注意下包名💊-->
<!-- <provider--> <!-- <provider-->
<!-- android:name="com.umeng.message.provider.MessageProvider"--> <!-- android:name="com.umeng.message.provider.MessageProvider"-->
<!-- android:authorities="${application_id}.umeng.message"--> <!-- android:authorities="${application_id}.umeng.message"-->
<!-- android:exported="false">--> <!-- android:exported="false">-->
<!-- <grant-uri-permission android:pathPattern=".*" />--> <!-- <grant-uri-permission android:pathPattern=".*" />-->
<!-- </provider>--> <!-- </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