app/src/main/AndroidManifest.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/activity_test_log.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/AndroidManifest.xml
@@ -5,13 +5,20 @@ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions" /> <!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> --> <uses-permission android:name="android.permission.VIBRATE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> --> <!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> --> <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> --> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> --> tools:ignore="ProtectedPermissions" /> <!--Android13 照片--> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <!--Android13 视频--> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!--Android13 音频--> <!-- <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />--> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /><!–外部存储目录访问权限 谷歌play上架不了–>--> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <!-- wifi状态权限 --> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.INTERNET" /> <!-- 开启网络权限 --> @@ -20,13 +27,10 @@ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- android 10.0使用wifi api新添加的权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- bugly所需权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <uses-permission android:name="android.permission.CAMERA" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- bugly所需权限 --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- UNI相机和存储的权限 --> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> @@ -38,14 +42,12 @@ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- Optional. Required for location feature --> <!-- 为了提高sdk识别唯一用户的能力,保证消息推送的精准送达,建议集成以下权限(可选) --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 如您需要接入地理围栏业务,建议集成以下权限(可选) --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> @@ -72,9 +74,9 @@ android:allowBackup="true" android:icon="@drawable/desktop_logo" android:label="@string/app_name" android:persistent="true" android:requestLegacyExternalStorage="true" android:supportsRtl="true" android:persistent="true" android:theme="@style/Theme.PhotovoltaicDebug"> <activity android:name=".ui.newC.PowerStationsMoveActivity" @@ -176,8 +178,22 @@ <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 注册服务 --> </activity> <provider android:name="androidx.core.content.FileProvider" android:authorities="com.hdl.photovoltaic.fileProvider" android:exported="false" android:grantUriPermissions="true" tools:replace="android:authorities"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" tools:replace="android:resource" /> </provider> <!-- 注册服务 --> <service android:name=".internet.HttpServer.MyNanoHttpService" /> <!-- 加它uniapp才能唤起相机 --> <provider android:name="io.dcloud.common.util.DCloud_FileProvider" android:authorities="com.hdl.photovoltaic.dc.fileprovider" @@ -219,9 +235,9 @@ android:name=".services.UniappService" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="UniappService.ACTION" /> </intent-filter> <intent-filter> <action android:name="UniappService.ACTION" /> </intent-filter> </service> <meta-data @@ -235,6 +251,6 @@ android:value="true" /> </application> <queries> <package android:name="com.hdl.photovoltaic.services"/> <package android:name="com.hdl.photovoltaic.services" /> </queries> </manifest> app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java
@@ -1,5 +1,6 @@ package com.hdl.photovoltaic.ui.me; import android.Manifest; import android.content.Intent; import android.os.Build; @@ -38,6 +39,7 @@ import com.hdl.photovoltaic.widget.popupview.CameraAlbumPopWindow; import java.io.File; import java.util.Objects; /** @@ -72,6 +74,7 @@ } private void initData() { // generalPermission = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() { // @Override // public void onActivityResult(Map<String, Boolean> result) { @@ -103,24 +106,37 @@ finish(); } }); viewBinding.personalDataUserPortraitIl.getRoot().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Manifest.permission.WRITE_EXTERNAL_STORAGE 读写设备上的照片以及文件 //generalPermission.launch(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}); PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionUtils.PermissionState() { @Override public void Success(int value) { if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) { //Android 13以上用别的权限 if (Build.VERSION.SDK_INT >= 33) { PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.READ_MEDIA_IMAGES, new PermissionUtils.PermissionState() { @Override public void Success(int value) { if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) { // HdlThreadLogic.toast(_mActivity, R.string.permission_open); return; return; } changedUserAvatar(); } changedUserAvatar(); } }, true); }, true); } else { PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionUtils.PermissionState() { @Override public void Success(int value) { if (value == PermissionUtils.STATUS_REFUSE_PERMANENT) { // HdlThreadLogic.toast(_mActivity, R.string.permission_open); return; } changedUserAvatar(); } }, true); } } }); app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java
@@ -27,6 +27,8 @@ import android.widget.RelativeLayout; import android.widget.TextView; import androidx.core.content.FileProvider; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.other.HdlDialogLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; @@ -203,32 +205,46 @@ * 拍照获取图片 **/ private void take_photo() { //获取系統版本 int currentapiVersion = Build.VERSION.SDK_INT; // 激活相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // 判断存储卡是否可以用,可用进行存储 SimpleDateFormat timeStampFormat = new SimpleDateFormat( "yyyy_MM_dd_HH_mm_ss", Locale.ENGLISH); String filename = timeStampFormat.format(new Date()); outputImagepath = new File(hdl_Dir, filename + ".jpg"); if (currentapiVersion < 24) { // 从文件中创建uri Uri uri = Uri.fromFile(outputImagepath); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } else { try { //获取系統版本 int currentapiVersion = Build.VERSION.SDK_INT; // 激活相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // 判断存储卡是否可以用,可用进行存储 SimpleDateFormat timeStampFormat = new SimpleDateFormat( "yyyy_MM_dd_HH_mm_ss", Locale.ENGLISH); String filename = timeStampFormat.format(new Date()); outputImagepath = new File(hdl_Dir, filename + ".jpg"); if (currentapiVersion < 24) { // 从文件中创建uri Uri uri = Uri.fromFile(outputImagepath); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); } else { // //兼容android7.0 使用共享文件的形式 // ContentValues contentValues = new ContentValues(1); // contentValues.put(MediaStore.Images.Media.DATA, outputImagepath.getAbsolutePath()); // Uri uri = mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); // intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); // Uri photoURI = FileProvider.getUriForFile(mContext, "com.hdl.photovoltaic.dc.fileprovider", outputImagepath); // intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); // intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); //兼容android7.0 使用共享文件的形式 ContentValues contentValues = new ContentValues(1); contentValues.put(MediaStore.Images.Media.DATA, outputImagepath.getAbsolutePath()); contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, outputImagepath.getName()); contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); Uri uri = mContext.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); // Uri photoURI= FileProvider.getUriForFile(mContext,"com.hdl.debugtreasure.dc.fileprovider",outputImagepath); // intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); // intent.putExtra(MediaStore.EXTRA_OUTPUT,photoURI); Uri photoURI = FileProvider.getUriForFile(mContext, "com.hdl.photovoltaic.fileProvider", outputImagepath); intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI); } // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CAREMA ((Activity) mContext).startActivityForResult(intent, TAKE_PHOTO); } catch (Exception e) { HdlThreadLogic.toast(mContext, R.string.loading_not_supported); } // 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CAREMA ((Activity) mContext).startActivityForResult(intent, TAKE_PHOTO); } @@ -240,7 +256,7 @@ HdlThreadLogic.toast(mContext, R.string.camera_album_file_save_fial); } else { if (!TextUtils.isEmpty(outputImagepath.getAbsolutePath())) { //(android13,14需要再设置-隐私-)特殊权限设置 //注意:(android13,14需要再设置-隐私-)特殊权限设置 orc_bitmap = BitmapFactory.decodeFile(outputImagepath.getAbsolutePath());//获取图片 saveBitmap(comp(ImgUpdateDirection(outputImagepath.getAbsolutePath()))); //压缩图片 } else { app/src/main/res/layout/activity_test_log.xml
@@ -158,6 +158,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/dp_50" android:background="@color/text_FF1C1C1E" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"