调整App内获取授权的位置

This commit is contained in:
fengjignqi
2026-06-16 14:49:32 +08:00
parent 45dfc2d793
commit 92ca8067d2
11 changed files with 107 additions and 34 deletions

View File

@@ -3,6 +3,10 @@
<component name="DeviceTable"> <component name="DeviceTable">
<option name="columnSorters"> <option name="columnSorters">
<list> <list>
<ColumnSorterState>
<option name="column" value="Name" />
<option name="order" value="ASCENDING" />
</ColumnSorterState>
<ColumnSorterState> <ColumnSorterState>
<option name="column" value="API" /> <option name="column" value="API" />
<option name="order" value="DESCENDING" /> <option name="order" value="DESCENDING" />

View File

@@ -11,6 +11,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.ckkj.water.EventMessage; import com.ckkj.water.EventMessage;
import com.ckkj.water.R; import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity; import com.ckkj.water.base.BaseActivity;
import com.ckkj.water.base.BaseFragment;
import com.ckkj.water.custom.GridSpacingItemDecoration; import com.ckkj.water.custom.GridSpacingItemDecoration;
import com.ckkj.water.custom.view.CustomBubbleAttachPopup; import com.ckkj.water.custom.view.CustomBubbleAttachPopup;
import com.ckkj.water.databinding.DeviceControlLayoutBinding; import com.ckkj.water.databinding.DeviceControlLayoutBinding;
@@ -149,7 +150,21 @@ public class DeviceControlActivity extends BaseActivity<DeviceControlLayoutBindi
break; break;
case R.id.linear_bt: case R.id.linear_bt:
showDialogtext(null, false, false, true,
getString(R.string.tip_text),
getString(R.string.device_binding_conflict_message),
getString(R.string.cancel_text),
getString(R.string.confirm_text),
new BaseFragment.OnDialogClick() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick() {
}
});
break; break;
case R.id.linear_wifi: case R.id.linear_wifi:

View File

@@ -195,7 +195,7 @@ public class EspProvisionManager {
private void startPendingConnect(boolean respectCooldown) { private void startPendingConnect(boolean respectCooldown) {
if (pendingBluetoothDevice == null) { if (pendingBluetoothDevice == null) {
notifyFailed(ProvisionConfig.ERROR_INVALID_DEVICE, "钃濈墮璁惧鏃犳晥"); notifyFailed(ProvisionConfig.ERROR_INVALID_DEVICE, "蓝牙设备无效");
return; return;
} }
if (provisioning) { if (provisioning) {

View File

@@ -25,6 +25,7 @@ import com.ckkj.water.ConstantUtil;
import com.ckkj.water.R; import com.ckkj.water.R;
import com.ckkj.water.base.BaseActivity; import com.ckkj.water.base.BaseActivity;
import com.ckkj.water.databinding.GuideActivityLayoutBinding; import com.ckkj.water.databinding.GuideActivityLayoutBinding;
import com.ckkj.water.login.LoginActivity;
import com.ckkj.water.login.entity.LoginEntity; import com.ckkj.water.login.entity.LoginEntity;
import com.ckkj.water.login.mvp.LoginContract; import com.ckkj.water.login.mvp.LoginContract;
import com.ckkj.water.login.mvp.LoginImpl; import com.ckkj.water.login.mvp.LoginImpl;
@@ -95,8 +96,11 @@ public class GuideActivity extends BaseActivity<GuideActivityLayoutBinding, Logi
viewBinding.tvStart.setOnClickListener(v -> { viewBinding.tvStart.setOnClickListener(v -> {
SharePreUtil.putBoolean(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.FIRST_ENTER_APP_FLAG, true); SharePreUtil.putBoolean(ConstantUtil.SHARE_PRE_NAME, mContext, ConstantUtil.FIRST_ENTER_APP_FLAG, true);
Intent intent = new Intent(mContext, MainActivity.class); if(AppConfig.USER_LOGIN){
startActivity(intent); goTo(mContext, MainActivity.class,null);
}else{
goTo(mContext, LoginActivity.class,null);
}
finish(); finish();
}); });
} }

View File

@@ -122,25 +122,29 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
switch (v.getId()){ switch (v.getId()){
case R.id.img_scan: case R.id.img_scan:
//检测有无相机权限 if(checkBluetoothPermissions()){
String readPermission = Manifest.permission.CAMERA; //检测有无相机权限
if(!hasRecordPermission(readPermission)){ String readPermission = Manifest.permission.CAMERA;
getPermissionRequst(readPermission, if(!hasRecordPermission(readPermission)){
getString(R.string.permission_request_title), getPermissionRequst(readPermission,
getString(R.string.camera_permission_scan_desc), getString(R.string.permission_request_title),
REQUEST_EVENT_CODE_10001); getString(R.string.camera_permission_scan_desc),
REQUEST_EVENT_CODE_10001);
}else{
scanQrcode();
}
}else{ }else{
scanQrcode(); goTo(mContext, PermissionActivity.class,null);
} }
break; break;
case R.id.img_add: case R.id.img_add:
String permission = Manifest.permission.ACCESS_FINE_LOCATION; if(checkBluetoothPermissions()){
boolean hasPermission = hasRecordPermission(permission);
if(!hasPermission){
goTo(mContext, PermissionActivity.class,null);
}else{
goTo(mContext, AddDeviceActivity_copy.class,null); goTo(mContext, AddDeviceActivity_copy.class,null);
}else{
goTo(mContext, PermissionActivity.class,null);
} }
break; break;
@@ -276,6 +280,26 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
checkBluetoothAndProceed(); checkBluetoothAndProceed();
break; break;
case 303:
//目前该设备,不属于该用户,需要提示解绑
showDialogtext(null,
false,
false,
getString(R.string.tip_text),
getString(R.string.device_binding_conflict_message),
"",
"",
new OnDialogClick() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick() {
}
});
break;
case 304: case 304:
//该设备目前在线已经在mqtt注册但是没有绑定用户需要跳转到绑定页面 //该设备目前在线已经在mqtt注册但是没有绑定用户需要跳转到绑定页面
Bundle bundleNoBind = new Bundle(); Bundle bundleNoBind = new Bundle();
@@ -314,19 +338,12 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
Manifest.permission.ACCESS_FINE_LOCATION Manifest.permission.ACCESS_FINE_LOCATION
}; };
if (!hasRecordPermission(permissions)) { if (!hasRecordPermission(permissions)) {
getMorePermissionRequst(permissions,
"蓝牙权限申请",
"智能浇水需要您的授权,获取蓝牙权限添加设备",
REQUEST_EVENT_CODE_BLUETOOTH_PERMISSION);
return false; return false;
} }
} else { } else {
// Android 12 以下需要位置权限 // Android 12 以下需要位置权限
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) { != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{
Manifest.permission.ACCESS_FINE_LOCATION
}, REQUEST_EVENT_CODE_BLUETOOTH_PERMISSION);
return false; return false;
} }
} }
@@ -397,14 +414,14 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
@Override @Override
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) { public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
hidePermissionDialog(); hidePermissionDialog();
if (requestCode == REQUEST_EVENT_CODE_10001) { // if (requestCode == REQUEST_EVENT_CODE_10001) {
scanQrcode(); // scanQrcode();
} else if (requestCode == REQUEST_EVENT_CODE_BLUETOOTH_PERMISSION) { // } else if (requestCode == REQUEST_EVENT_CODE_BLUETOOTH_PERMISSION) {
// 蓝牙权限获取成功,检查蓝牙状态 // // 蓝牙权限获取成功,检查蓝牙状态
if (initBluetooth()) { // if (initBluetooth()) {
goToDeviceProvisioning(); // goToDeviceProvisioning();
} // }
} // }
} }
@Override @Override
@@ -461,4 +478,5 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
} }
} }

View File

@@ -80,6 +80,8 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
setClick(viewBinding.tvLanguage); setClick(viewBinding.tvLanguage);
setClick(viewBinding.tvResetPsd); setClick(viewBinding.tvResetPsd);
setClick(viewBinding.checkboxRead); setClick(viewBinding.checkboxRead);
setClick(viewBinding.btn133);
setClick(viewBinding.btn151);
} }
private void setClick(View view) { private void setClick(View view) {
@@ -169,6 +171,21 @@ public class LoginActivity extends BaseActivity<LoginLayoutBinding, LoginPresent
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.btn_133:
showLoadingDialog();
mPresenter.loginBySmsCode("password",
"13305376054",
"",
"000000");
break;
case R.id.btn_151:
showLoadingDialog();
mPresenter.loginBySmsCode("password",
"15192412330",
"",
"000000");
break;
case R.id.checkbox_read: case R.id.checkbox_read:
if(mYinsiConfirm){ if(mYinsiConfirm){
mYinsiConfirm = false; mYinsiConfirm = false;

View File

@@ -13,6 +13,7 @@ import com.ckkj.water.login.entity.LoginEntity;
import com.ckkj.water.login.mvp.LoginContract; import com.ckkj.water.login.mvp.LoginContract;
import com.ckkj.water.login.mvp.LoginImpl; import com.ckkj.water.login.mvp.LoginImpl;
import com.ckkj.water.login.mvp.LoginPresenter; import com.ckkj.water.login.mvp.LoginPresenter;
import com.ckkj.water.main.activity.MainActivity;
import com.ckkj.water.network.BaseBean; import com.ckkj.water.network.BaseBean;
import com.ckkj.water.permission.PermissionActivity; import com.ckkj.water.permission.PermissionActivity;
import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.show.ToastUtil;
@@ -45,7 +46,7 @@ public class RegisterSuccessActivity extends BaseActivity<RegisterSuccessLayoutB
viewBinding.tvCommit.setOnClickListener(new View.OnClickListener() { viewBinding.tvCommit.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
goTo(mContext, PermissionActivity.class,null); goTo(mContext, MainActivity.class,null);
} }
}); });
} }

View File

@@ -15,6 +15,16 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<Button
android:id="@+id/btn_133"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="133"/>
<Button
android:id="@+id/btn_151"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="151"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -70,7 +70,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_35" android:layout_marginLeft="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_35" android:layout_marginRight="@dimen/dp_35"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
@@ -81,6 +81,7 @@
android:layout_height="@dimen/dp_40" android:layout_height="@dimen/dp_40"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/shape_login_radius8_huise_bg" android:background="@drawable/shape_login_radius8_huise_bg"
android:layout_marginRight="@dimen/dp_25"
android:gravity="center" android:gravity="center"
android:textColor="@color/color_gray_tab" android:textColor="@color/color_gray_tab"
android:text="取消"/> android:text="取消"/>
@@ -92,7 +93,6 @@
android:background="@drawable/shape_login_radius8_jb_bg" android:background="@drawable/shape_login_radius8_jb_bg"
android:gravity="center" android:gravity="center"
android:textColor="@color/color_white" android:textColor="@color/color_white"
android:layout_marginLeft="@dimen/dp_13"
android:text="确定"/> android:text="确定"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@@ -66,6 +66,8 @@
<string name="keep_device_bt_tips">Keep Bluetooth enabled and stay close to the device</string> <string name="keep_device_bt_tips">Keep Bluetooth enabled and stay close to the device</string>
<string name="keep_device_bt_tips2">Sending information to device</string> <string name="keep_device_bt_tips2">Sending information to device</string>
<string name="keep_device_bt_tips3">Connecting device to network</string> <string name="keep_device_bt_tips3">Connecting device to network</string>
<string name="reset_device_provision">Please manually reset the device and put it into pairing mode before continuing.</string>
<string name="device_binding_conflict_message">This device is already linked to another account. Please unbind it from that account or reset the device and set it up again.</string>
<string name="button_finish">Finish</string> <string name="button_finish">Finish</string>
<string name="button_reset">Reset</string> <string name="button_reset">Reset</string>

View File

@@ -92,6 +92,8 @@
<string name="device_status_offline">离线</string> <string name="device_status_offline">离线</string>
<string name="select_watering_duration">请选择浇水时长</string> <string name="select_watering_duration">请选择浇水时长</string>
<string name="start_watering">开始浇水</string> <string name="start_watering">开始浇水</string>
<string name="reset_device_provision">该操作需要手动将设备重置到配网模式</string>
<string name="device_binding_conflict_message">该设备已被其他用户绑定,您可以登录该账号尝试解绑,或重置设备进入配网模式</string>
<!--排程--> <!--排程-->