wjc
2025-01-07 9d6573a634ca739ac2c970206db223bb845eb6ce
2025年01月07日15:17:17
4个文件已修改
99 ■■■■ 已修改文件
app/src/main/AndroidManifest.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/me/CPersonalDataActivity.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/widget/popupview/CameraAlbumPopWindow.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_test_log.xml 1 ●●●● 补丁 | 查看 | 原始文档 | 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" />&lt;!&ndash;外部存储目录访问权限 谷歌play上架不了&ndash;&gt;-->
    <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"
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,13 +106,26 @@
                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});
                //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;
                            }
                            changedUserAvatar();
                        }
                    }, true);
                } else {
                PermissionUtils.requestPermissionsResultCallback(_mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionUtils.PermissionState() {
                    @Override
                    public void Success(int value) {
@@ -120,7 +136,7 @@
                        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,6 +205,7 @@
     * 拍照获取图片
     **/
    private void take_photo() {
        try {
        //获取系統版本
        int currentapiVersion = Build.VERSION.SDK_INT;
        // 激活相机
@@ -218,17 +221,30 @@
            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.debugtreasure.dc.fileprovider",outputImagepath);
//                //兼容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.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.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);
        }
    }
@@ -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"