v418
This commit is contained in:
@@ -4,6 +4,7 @@ import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Build;
|
||||
|
||||
import com.netease.nim.uikit.common.ToastHelper;
|
||||
import com.netease.nimlib.sdk.NIMClient;
|
||||
@@ -59,7 +60,12 @@ public class NIMInitManager {
|
||||
if (register) {
|
||||
updateLocale();
|
||||
IntentFilter filter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
|
||||
DemoCache.getContext().registerReceiver(localeReceiver, filter);
|
||||
// Android 13 (API 33) 及以上版本需要指定 RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
DemoCache.getContext().registerReceiver(localeReceiver, filter, Context.RECEIVER_NOT_EXPORTED);
|
||||
} else {
|
||||
DemoCache.getContext().registerReceiver(localeReceiver, filter);
|
||||
}
|
||||
} else {
|
||||
DemoCache.getContext().unregisterReceiver(localeReceiver);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
import android.os.Build;
|
||||
|
||||
import com.netease.nim.uikit.api.NimUIKit;
|
||||
import com.netease.nim.uikit.api.model.contact.ContactChangedObserver;
|
||||
@@ -176,7 +177,12 @@ public class OnlineStateEventManager {
|
||||
private static void registerNetTypeChangeObserver() {
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||
DemoCache.getContext().registerReceiver(receiver, filter);
|
||||
// Android 13 (API 33) 及以上版本需要指定 RECEIVER_EXPORTED 或 RECEIVER_NOT_EXPORTED
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
DemoCache.getContext().registerReceiver(receiver, filter, Context.RECEIVER_NOT_EXPORTED);
|
||||
} else {
|
||||
DemoCache.getContext().registerReceiver(receiver, filter);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -374,10 +374,23 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
|
||||
} else if (v == sendMessageButtonInInputBar) {
|
||||
onTextMessageSendButtonPressed();
|
||||
} else if (v == switchToAudioButtonInInputBar) {
|
||||
// Android 13+ 录音只需要 RECORD_AUDIO 权限,不需要存储权限
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
|
||||
if (PermissionsUtil.hasPermission(container.activity, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
//有访问录音
|
||||
boolean hasPermission;
|
||||
String[] permissionsToRequest;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// Android 13+ 录音只需要 RECORD_AUDIO 权限
|
||||
hasPermission = PermissionsUtil.hasPermission(container.activity, Manifest.permission.RECORD_AUDIO);
|
||||
permissionsToRequest = new String[]{Manifest.permission.RECORD_AUDIO};
|
||||
} else {
|
||||
// Android 12及以下需要 RECORD_AUDIO 和存储权限
|
||||
hasPermission = PermissionsUtil.hasPermission(container.activity, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
permissionsToRequest = new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
}
|
||||
|
||||
if (hasPermission) {
|
||||
//有访问录音的权限
|
||||
switchToAudioLayout();
|
||||
} else {
|
||||
EasyWindow.with(container.activity).setGravity(Gravity.TOP).setYOffset(200).setWidth(1000)
|
||||
@@ -397,7 +410,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
|
||||
|
||||
}
|
||||
|
||||
}, new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE});
|
||||
}, permissionsToRequest);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import cn.shangyu.gdxzExpert.R;
|
||||
import cn.shangyu.gdxzExpert.activity.AllPhotosActivity;
|
||||
import cn.shangyu.gdxzExpert.activity.PhotoAlbumActivity;
|
||||
import cn.shangyu.gdxzExpert.ecdemo.common.utils.DemoUtils;
|
||||
import cn.shangyu.gdxzExpert.ecdemo.common.utils.FileAccessor;
|
||||
@@ -42,9 +43,16 @@ public class ImageAction extends BaseAction {
|
||||
|
||||
@Override
|
||||
public void onClick() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (PermissionsUtil.hasPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
Intent intent=new Intent(getActivity(), PhotoAlbumActivity.class);
|
||||
|
||||
// Android 6.0 ~ 12 使用旧的存储权限
|
||||
boolean hasPermission;
|
||||
String[] permissionsToRequest;
|
||||
|
||||
hasPermission = PermissionsUtil.hasPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
permissionsToRequest = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
|
||||
if (hasPermission) {
|
||||
Intent intent=new Intent(getActivity(), AllPhotosActivity.class);
|
||||
intent.putExtra("photonum", "-1");
|
||||
getActivity().startActivityForResult(intent, 0x4);
|
||||
} else {
|
||||
@@ -55,7 +63,7 @@ public class ImageAction extends BaseAction {
|
||||
@Override
|
||||
public void permissionGranted(@NonNull String[] permissions) {
|
||||
EasyWindow.cancelAll();
|
||||
Intent intent=new Intent(getActivity(), PhotoAlbumActivity.class);
|
||||
Intent intent=new Intent(getActivity(), AllPhotosActivity.class);
|
||||
intent.putExtra("photonum", "-1");
|
||||
getActivity().startActivityForResult(intent, 0x4);
|
||||
}
|
||||
@@ -63,18 +71,13 @@ public class ImageAction extends BaseAction {
|
||||
@Override
|
||||
public void permissionDenied(@NonNull String[] permissions) {
|
||||
EasyWindow.cancelAll();
|
||||
//用户拒绝了访问读写的申请
|
||||
//
|
||||
//用户拒绝了访问相册的申请
|
||||
}
|
||||
|
||||
}, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE});
|
||||
}, permissionsToRequest);
|
||||
}
|
||||
|
||||
} else {
|
||||
Intent intent=new Intent(getActivity(), PhotoAlbumActivity.class);
|
||||
intent.putExtra("photonum", "-1");
|
||||
getActivity().startActivityForResult(intent, 0x4);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
|
||||
@@ -51,8 +51,21 @@ public class VideoAction extends BaseAction {
|
||||
@Override
|
||||
public void onClick() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
|
||||
if (PermissionsUtil.hasPermission(getActivity(), Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
// Android 13+ (API 33+) 拍照主要需要 CAMERA 权限
|
||||
boolean hasPermission;
|
||||
String[] permissionsToRequest;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// Android 13+ 拍照主要需要 CAMERA 权限
|
||||
hasPermission = PermissionsUtil.hasPermission(getActivity(), Manifest.permission.CAMERA);
|
||||
permissionsToRequest = new String[]{Manifest.permission.CAMERA};
|
||||
} else {
|
||||
// Android 12及以下需要 CAMERA 和存储权限
|
||||
hasPermission = PermissionsUtil.hasPermission(getActivity(), Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
permissionsToRequest = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
}
|
||||
|
||||
if (hasPermission) {
|
||||
//有访问摄像头的权限
|
||||
showDialog();
|
||||
} else {
|
||||
@@ -73,7 +86,7 @@ public class VideoAction extends BaseAction {
|
||||
|
||||
}
|
||||
|
||||
}, new String[]{ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE});
|
||||
}, permissionsToRequest);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -93,8 +106,22 @@ public class VideoAction extends BaseAction {
|
||||
public void onDialogItemClick(Dialog d, int position) {
|
||||
|
||||
if (position == 0) {
|
||||
// Android 13+ (API 33+) 拍照主要需要 CAMERA 权限
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (PermissionsUtil.hasPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
boolean hasPermission;
|
||||
String[] permissionsToRequest;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// Android 13+ 拍照主要需要 CAMERA 权限
|
||||
hasPermission = PermissionsUtil.hasPermission(getActivity(), Manifest.permission.CAMERA);
|
||||
permissionsToRequest = new String[]{Manifest.permission.CAMERA};
|
||||
} else {
|
||||
// Android 12及以下需要 CAMERA 和存储权限
|
||||
hasPermission = PermissionsUtil.hasPermission(getActivity(), Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
permissionsToRequest = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
}
|
||||
|
||||
if (hasPermission) {
|
||||
// handleTackPicture();
|
||||
takePhoto11();
|
||||
} else {
|
||||
@@ -112,11 +139,11 @@ public class VideoAction extends BaseAction {
|
||||
@Override
|
||||
public void permissionDenied(@NonNull String[] permissions) {
|
||||
EasyWindow.cancelAll();
|
||||
//用户拒绝了访问读写的申请
|
||||
//用户拒绝了访问摄像头的申请
|
||||
//
|
||||
}
|
||||
|
||||
}, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE});
|
||||
}, permissionsToRequest);
|
||||
}
|
||||
|
||||
} else {
|
||||
@@ -125,11 +152,23 @@ public class VideoAction extends BaseAction {
|
||||
|
||||
|
||||
} else if (position == 1) {
|
||||
|
||||
// Android 13+ 录音只需要 RECORD_AUDIO 权限,不需要存储权限
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
|
||||
if (PermissionsUtil.hasPermission(getActivity(), Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
//有访问录音
|
||||
boolean hasPermission;
|
||||
String[] permissionsToRequest;
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// Android 13+ 录音只需要 RECORD_AUDIO 权限
|
||||
hasPermission = PermissionsUtil.hasPermission(getActivity(), Manifest.permission.RECORD_AUDIO);
|
||||
permissionsToRequest = new String[]{Manifest.permission.RECORD_AUDIO};
|
||||
} else {
|
||||
// Android 12及以下需要 RECORD_AUDIO 和存储权限
|
||||
hasPermission = PermissionsUtil.hasPermission(getActivity(), Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
permissionsToRequest = new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
||||
}
|
||||
|
||||
if (hasPermission) {
|
||||
//有访问录音的权限
|
||||
handleVideoRecord();
|
||||
} else {
|
||||
EasyWindow.with(getActivity()).setGravity(Gravity.TOP).setYOffset(200).setWidth(1000)
|
||||
@@ -149,7 +188,7 @@ public class VideoAction extends BaseAction {
|
||||
// finish();
|
||||
}
|
||||
|
||||
}, new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE});
|
||||
}, permissionsToRequest);
|
||||
}
|
||||
|
||||
}else {
|
||||
|
||||
Reference in New Issue
Block a user