plugins package位置信息获取

前提

plugins目录结构

标记数字1的:表示与原生交互的逻辑(获取原生功能的地方)

标记数字2的:原生数据获取,相当于原生数据暴露的一个接口,用于flutter端调用

example目录为测试的地方

图片.png

权限申请

Android端申请权限

PackageManager.PERMISSION_GRANTED:有权限
PackageManager.PERMISSION_DENIED:无权限

权限判断:
ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION)
权限请求:
//这里的mContext必须要为Activity类型
ActivityCompat.requestPermissions( mContext, new String[]{ Manifest.permission.ACCESS_FINE_LOCATION },code);

此时会遇到个问题:找不到activity类型的对象。
解决办法:需要在Plugin类中实现接口ActivityAware类,继而拿出activity类

图片.png

图片.png

开启位置监听 (间隔1s,间距5米监听一次)
locationManager.requestLocationUpdates(PROVIDER,
1000, 5, listener, mContext.getMainLooper());

LocationListener listener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
        }
         @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
        @Override
        public void onProviderEnabled(String provider) {
        }
          @Override
        public void onProviderDisabled(String provider) {
        }
         };
复制代码

数据拿出去时会遇到:
type ‘_InternalLinkedHashMap<Object?, Object?>’ is not a subtype of type ‘Map
处理办法:

图片.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享