AndroidOpenDemo/.idea/workspace.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
AndroidOpenDemo/app/src/main/java/com/hdl/HdlToLc.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
AndroidOpenDemo/.idea/workspace.xml
@@ -15,11 +15,12 @@ </component> <component name="ChangeListManager"> <list default="true" id="7bacc5cf-316f-4ad4-b191-7f5297eb7bcf" name="Default Changelist" comment=""> <change afterPath="$PROJECT_DIR$/app/src/main/java/com/utils/DeviceUtils.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpClient.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java" beforeDir="false" afterPath="$PROJECT_DIR$/DeviceAddModule/src/main/java/com/mm/android/deviceaddmodule/openapi/HttpSend.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/common/openapi/DeviceInfoOpenApiManager.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/HdlToLc.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/hdl/HdlToLc.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/HdlToLc.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/utils/HdlToLcUtils.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/net/IUserDataCallBack.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/net/IUserDataCallBack.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hdl/net/UserNetManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/net/UserNetManager.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> @@ -136,6 +137,7 @@ <recent name="com" /> </key> <key name="CopyClassDialog.RECENTS_KEY"> <recent name="com.utils" /> <recent name="com.mm.android.deviceaddmodule.utils" /> </key> <key name="CopyFile.RECENT_KEYS"> @@ -348,51 +350,59 @@ </ignored-roots> </component> <component name="WindowStateProjectService"> <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser" timestamp="1669099481115"> <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser" timestamp="1669107811029"> <screen x="0" y="0" width="1280" height="800" /> </state> <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser/0.0.1280.800@0.0.1280.800" timestamp="1669099481115" /> <state width="503" height="480" key="DebuggerActiveHint" timestamp="1669101875842"> <state x="453" y="91" key="#com.intellij.ide.util.MemberChooser/0.0.1280.800@0.0.1280.800" timestamp="1669107811029" /> <state x="180" y="331" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog" timestamp="1669107459555"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="503" height="480" key="DebuggerActiveHint/0.0.1280.800@0.0.1280.800" timestamp="1669101875842" /> <state x="180" y="331" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog/0.0.1280.800@0.0.1280.800" timestamp="1669107459555" /> <state x="326" y="288" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.packages" timestamp="1669107461906"> <screen x="0" y="0" width="1280" height="800" /> </state> <state x="326" y="288" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.packages/0.0.1280.800@0.0.1280.800" timestamp="1669107461905" /> <state width="503" height="480" key="DebuggerActiveHint" timestamp="1669108173504"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="503" height="480" key="DebuggerActiveHint/0.0.1280.800@0.0.1280.800" timestamp="1669108173504" /> <state width="462" height="480" key="DebuggerActiveHint/0.23.1280.777@0.23.1280.777" timestamp="1669100189203" /> <state width="1236" height="287" key="GridCell.Tab.0.bottom" timestamp="1669101968820"> <state width="1236" height="287" key="GridCell.Tab.0.bottom" timestamp="1669108419917"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.0.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669101968820" /> <state width="1236" height="287" key="GridCell.Tab.0.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669108419917" /> <state width="1236" height="206" key="GridCell.Tab.0.bottom/0.23.1280.777@0.23.1280.777" timestamp="1669007123738" /> <state width="1236" height="287" key="GridCell.Tab.0.center" timestamp="1669101968818"> <state width="1236" height="287" key="GridCell.Tab.0.center" timestamp="1669108419916"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.0.center/0.0.1280.800@0.0.1280.800" timestamp="1669101968818" /> <state width="1236" height="287" key="GridCell.Tab.0.center/0.0.1280.800@0.0.1280.800" timestamp="1669108419916" /> <state width="1236" height="206" key="GridCell.Tab.0.center/0.23.1280.777@0.23.1280.777" timestamp="1669007123735" /> <state width="1236" height="287" key="GridCell.Tab.0.left" timestamp="1669101968816"> <state width="1236" height="287" key="GridCell.Tab.0.left" timestamp="1669108419916"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.0.left/0.0.1280.800@0.0.1280.800" timestamp="1669101968816" /> <state width="1236" height="287" key="GridCell.Tab.0.left/0.0.1280.800@0.0.1280.800" timestamp="1669108419916" /> <state width="1236" height="206" key="GridCell.Tab.0.left/0.23.1280.777@0.23.1280.777" timestamp="1669007123734" /> <state width="1236" height="287" key="GridCell.Tab.0.right" timestamp="1669101968819"> <state width="1236" height="287" key="GridCell.Tab.0.right" timestamp="1669108419917"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.0.right/0.0.1280.800@0.0.1280.800" timestamp="1669101968819" /> <state width="1236" height="287" key="GridCell.Tab.0.right/0.0.1280.800@0.0.1280.800" timestamp="1669108419917" /> <state width="1236" height="206" key="GridCell.Tab.0.right/0.23.1280.777@0.23.1280.777" timestamp="1669007123736" /> <state width="1236" height="287" key="GridCell.Tab.1.bottom" timestamp="1669101968826"> <state width="1236" height="287" key="GridCell.Tab.1.bottom" timestamp="1669108419920"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.1.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669101968826" /> <state width="1236" height="287" key="GridCell.Tab.1.center" timestamp="1669101968824"> <state width="1236" height="287" key="GridCell.Tab.1.bottom/0.0.1280.800@0.0.1280.800" timestamp="1669108419920" /> <state width="1236" height="287" key="GridCell.Tab.1.center" timestamp="1669108419919"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.1.center/0.0.1280.800@0.0.1280.800" timestamp="1669101968824" /> <state width="1236" height="287" key="GridCell.Tab.1.left" timestamp="1669101968822"> <state width="1236" height="287" key="GridCell.Tab.1.center/0.0.1280.800@0.0.1280.800" timestamp="1669108419919" /> <state width="1236" height="287" key="GridCell.Tab.1.left" timestamp="1669108419918"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.1.left/0.0.1280.800@0.0.1280.800" timestamp="1669101968822" /> <state width="1236" height="287" key="GridCell.Tab.1.right" timestamp="1669101968825"> <state width="1236" height="287" key="GridCell.Tab.1.left/0.0.1280.800@0.0.1280.800" timestamp="1669108419918" /> <state width="1236" height="287" key="GridCell.Tab.1.right" timestamp="1669108419919"> <screen x="0" y="0" width="1280" height="800" /> </state> <state width="1236" height="287" key="GridCell.Tab.1.right/0.0.1280.800@0.0.1280.800" timestamp="1669101968825" /> <state width="1236" height="287" key="GridCell.Tab.1.right/0.0.1280.800@0.0.1280.800" timestamp="1669108419919" /> <state x="332" y="44" width="769" height="629" key="find.popup" timestamp="1669101340329"> <screen x="0" y="0" width="1280" height="800" /> </state> @@ -441,6 +451,11 @@ <line>187</line> <option name="timeStamp" value="84" /> </line-breakpoint> <line-breakpoint enabled="true" suspend="THREAD" type="java-line"> <url>file://$PROJECT_DIR$/app/src/main/java/com/lechange/demo/adapter/DeviceListAdapter.java</url> <line>48</line> <option name="timeStamp" value="92" /> </line-breakpoint> </breakpoints> </breakpoint-manager> <watches-manager> AndroidOpenDemo/app/src/main/java/com/hdl/HdlToLc.java
File was deleted AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/DeviceListActivity.java
@@ -19,7 +19,6 @@ import com.common.openapi.MethodConst; import com.common.openapi.entity.DeviceDetailListData; import com.common.openapi.entity.DeviceListData; import com.hdl.HdlToLc; import com.lechange.demo.R; import com.lechange.demo.adapter.DeviceListAdapter; import com.lechange.demo.view.LcPullToRefreshRecyclerView; @@ -27,6 +26,7 @@ import com.lechange.pulltorefreshlistview.PullToRefreshBase; import com.mm.android.deviceaddmodule.LCDeviceEngine; import com.mm.android.deviceaddmodule.mobilecommon.utils.LogUtil; import com.utils.HdlToLcUtils; import java.util.ArrayList; import java.util.Iterator; @@ -53,7 +53,7 @@ super.onCreate(savedInstanceState); setContentView(R.layout.activity_device_list); initView(); HdlToLc.requestPermission(); HdlToLcUtils.getInstance().requestPermission(); } private void initView() { AndroidOpenDemo/app/src/main/java/com/lechange/demo/ui/EnvGuideActivity.java
@@ -6,10 +6,11 @@ import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.hdl.HdlToLc; import com.lechange.demo.R; import com.lechange.demo.tools.RootUtil; import com.mm.android.deviceaddmodule.utils.SDsolutionUtility; import com.utils.HdlToLcUtils; public class EnvGuideActivity extends Activity implements View.OnClickListener { private TextView tvTitleCn; @@ -64,10 +65,15 @@ if (id == R.id.tv_title_cn) { // HdlToLc.initData( this,true,""); } else if (id == R.id.tv_overseas) { HdlToLc.initData(this,"HDL-HOME-APP-TEST","WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss",false); HdlToLcUtils.getInstance().initData(this, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", false); } HdlToLc.openActivity("1547099040465408002","eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIzMTI5ZjNlMDAwY2Q0YzhiOTgyYjUyNTk5MTE2MTJlMCIsImNvbXBhbnlJZCI6IjIwMiIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiJ3eHIiLCJ0ZW5hbnRJZCI6IjIwIiwidXNlclR5cGUiOiJVU0VSX0IiLCJ0b2tlblR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJ1c2VyTmFtZSI6Ind4ciIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2NjkxMDkxMjcsIm5iZiI6MTY2OTEwMTkyN30.TIyMqggqbaYoBEApeHTq3AidoKWZt5HpO2eUkhn_58VslSTxc-NhHwclTHjLpdVaMklJk1HMLQLwPOiJGhbUksOewO2dStzW1xYOpb_6zDs6Rw6v0h5cKmAYOf1f1S6RLqF2EHigf9fyy090ClWYcJo-9c_CFBXir4Y1lzDmLZQ","St_00003ee84eda32b14126af958052f20a"); HdlToLcUtils.getInstance().setHomeId("1547099040465408002"); HdlToLcUtils.getInstance().setToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIzMTI5ZjNlMDAwY2Q0YzhiOTgyYjUyNTk5MTE2MTJlMCIsImNvbXBhbnlJZCI6IjIwMiIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiJ3eHIiLCJ0ZW5hbnRJZCI6IjIwIiwidXNlclR5cGUiOiJVU0VSX0IiLCJ0b2tlblR5cGUiOiJhY2Nlc3NfdG9rZW4iLCJ1c2VyTmFtZSI6Ind4ciIsIm9wZW5BcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzOTIwMzU1NjgyMDQ0MjMxNjkiLCJleHAiOjE2NjkxMDkxMjcsIm5iZiI6MTY2OTEwMTkyN30.TIyMqggqbaYoBEApeHTq3AidoKWZt5HpO2eUkhn_58VslSTxc-NhHwclTHjLpdVaMklJk1HMLQLwPOiJGhbUksOewO2dStzW1xYOpb_6zDs6Rw6v0h5cKmAYOf1f1S6RLqF2EHigf9fyy090ClWYcJo-9c_CFBXir4Y1lzDmLZQ"); HdlToLcUtils.getInstance().setSubAccessToken("St_00003ee84eda32b14126af958052f20a"); // HdlToLcUtils.getInstance().openActivity(); //HdlToLcUtils.getInstance().AddCamera(); HdlToLcUtils.getInstance().play("8F05F83AAG05B3A"); } AndroidOpenDemo/app/src/main/java/com/net/IUserDataCallBack.java
File was renamed from AndroidOpenDemo/app/src/main/java/com/hdl/net/IUserDataCallBack.java @@ -1,4 +1,4 @@ package com.hdl.net; package com.net; public interface IUserDataCallBack { void onCallBackOpenId(String str); AndroidOpenDemo/app/src/main/java/com/net/UserNetManager.java
File was renamed from AndroidOpenDemo/app/src/main/java/com/hdl/net/UserNetManager.java @@ -1,4 +1,4 @@ package com.hdl.net; package com.net; import android.os.Handler; import android.os.Message; AndroidOpenDemo/app/src/main/java/com/utils/DeviceUtils.java
New file @@ -0,0 +1,82 @@ package com.utils; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; import com.common.openapi.ClassInstanceManager; import com.common.openapi.DeviceSubAccountListService; import com.common.openapi.IGetDeviceInfoCallBack; import com.common.openapi.MethodConst; import com.common.openapi.entity.DeviceDetailListData; import com.lechange.demo.ui.DeviceDetailActivity; import com.lechange.demo.ui.DeviceListActivity; import com.lechange.demo.ui.DeviceOnlineMediaPlayActivity; import com.mm.android.deviceaddmodule.openapi.HDLMD5Utils; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * Created by hxb on 2022/11/22. */ public class DeviceUtils implements IGetDeviceInfoCallBack.ISubAccountDevice< DeviceDetailListData.Response> { private String deviceId; public DeviceUtils(String deviceId){ this.deviceId=deviceId; } private List<DeviceDetailListData.ResponseData.DeviceListBean> datas = new ArrayList<>(); private void getDeviceList() { DeviceSubAccountListService deviceSubAccountListService = ClassInstanceManager.newInstance().getDeviceSubAccountListService(); deviceSubAccountListService.getSubAccountDeviceList(1,this); } public void play() { if (datas.size() == 0) { getDeviceList(); } else { for (DeviceDetailListData.ResponseData.DeviceListBean deviceListBean : datas) { if (deviceListBean.deviceId.equals(deviceId)) { if (!deviceListBean.status.equals("online")) { return; } Bundle bundle = new Bundle(); bundle.putSerializable(MethodConst.ParamConst.deviceDetail, deviceListBean); Intent intent = new Intent(HdlToLcUtils.getInstance().getActivity(), DeviceOnlineMediaPlayActivity.class); intent.putExtras(bundle); HdlToLcUtils.getInstance().getActivity().startActivity(intent); } } } } @Override public void DeviceList(DeviceDetailListData.Response responseData) { if (responseData.data != null && responseData.data.deviceList != null && responseData.data.deviceList.size() != 0) { Iterator<DeviceDetailListData.ResponseData.DeviceListBean> iterator = responseData.data.deviceList.iterator(); while (iterator.hasNext()) { DeviceDetailListData.ResponseData.DeviceListBean next = iterator.next(); if (next.channels != null && next.channels.size() == 0 && !next.catalog.contains("NVR")) { // 使用迭代器中的remove()方法,可以删除元素. iterator.remove(); } } } if ((responseData.data == null || responseData.data.deviceList == null || responseData.data.deviceList.size() == 0)) { return; } datas.addAll(responseData.data.deviceList); play(); } @Override public void onError(Throwable throwable) { Toast.makeText(HdlToLcUtils.getInstance().getActivity(), throwable.getMessage(), Toast.LENGTH_SHORT).show(); } } AndroidOpenDemo/app/src/main/java/com/utils/HdlToLcUtils.java
New file @@ -0,0 +1,199 @@ package com.utils; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.widget.Toast; import com.common.openapi.ClassInstanceManager; import com.lechange.demo.tools.MediaPlayHelper; import com.mm.android.deviceaddmodule.CommonParam; import com.mm.android.deviceaddmodule.DeviceAddActivity; import com.mm.android.deviceaddmodule.LCDeviceEngine; import com.mm.android.deviceaddmodule.mobilecommon.AppConsume.ProviderManager; import com.mm.android.deviceaddmodule.openapi.CONST; import com.usermodule.net.IUserDataCallBack; import com.usermodule.net.UserNetManager; public class HdlToLcUtils { private Activity activity; private String homeId; private String token; private String subAccessToken; public Activity getActivity() { return activity; } /** * instance */ private volatile static HdlToLcUtils instance; /** * getInstance * * @return HDLLink */ public static synchronized HdlToLcUtils getInstance() { if (instance == null) { synchronized (HdlToLcUtils.class) { if (instance == null) { instance = new HdlToLcUtils(); } } } return instance; } public void initData(Activity activity, String appKey, String secretKey, boolean isChina) { this.activity = activity; MediaPlayHelper.initContext(activity.getApplication().getApplicationContext()); ClassInstanceManager.newInstance().init(activity.getApplication()); String mUrl; if (isChina) { // mAppSecret = "f869433de68a4a06bb8f9bb89118fc"; // mAppid = "lc2ea929282d5f4636"; mUrl = CONST.Envirment.CHINA_TEST.url; ProviderManager.getAppProvider().setAppType(0); } else { // mAppSecret = "017fc27bb987496f9a677e4e6f0c88"; // mAppid = "lc0285433bc7e8423d"; // mUrl = CONST.Envirment.OVERSEAS_PRO.url; mUrl=CONST.Envirment.CHINA_TEST.url; ProviderManager.getAppProvider().setAppType(1); } try { CommonParam commonParam = new CommonParam(); commonParam.setEnvirment(mUrl);//云端连接 commonParam.setContext(activity.getApplication()); commonParam.setAppId(appKey); commonParam.setAppSecret(secretKey); //SDK信息初始化 LCDeviceEngine.newInstance().init(commonParam); } catch (Throwable e) { Toast.makeText(activity, e.getMessage(), Toast.LENGTH_SHORT).show(); } } public void openActivity() { try { // getSubAccountToken("827a98c98da7469b8bc19bb6a3c7651906"); activity.startActivity(new Intent(activity, com.lechange.demo.ui.DeviceListActivity.class)); } catch (Throwable e) { Toast.makeText(activity, e.getMessage(), Toast.LENGTH_SHORT).show(); } } public void addCamera() { //开启添加页面 activity.startActivity(new Intent(activity.getApplication(), DeviceAddActivity.class)); } public void play(String deviceId){ new DeviceUtils(deviceId).play(); } public void setActivity(Activity activity) { this.activity = activity; } public String getHomeId() { return homeId; } public void setHomeId(String homeId) { this.homeId = homeId; LCDeviceEngine.newInstance().setHomeId(homeId); } public String getToken() { return token; } public void setToken(String token) { this.token = token; LCDeviceEngine.newInstance().accessToken=(token); } public String getSubAccessToken() { return subAccessToken; } public void setSubAccessToken(String subAccessToken) { this.subAccessToken = subAccessToken; LCDeviceEngine.newInstance().setSubAccessToken(subAccessToken); } private void getSubAccountToken(String openId){ UserNetManager.getInstance().subAccountToken(openId, new IUserDataCallBack() { @Override public void onCallBackOpenId(String str) { if (str!=null){ //暂不保存到sp中了,因为获取需要context。 // PreferencesHelper.getInstance(getApplicationContext()).set(Constants.SUBACCOUNTTOKEN,str); LCDeviceEngine.newInstance().setSubAccessToken(str); activity.startActivity(new Intent(activity,com.lechange.demo.ui.DeviceListActivity.class)); } } @Override public void onError(Throwable throwable) { } }); } /** * 请求对讲权限 */ public void requestPermission() { boolean isMinSDKM = Build.VERSION.SDK_INT < 23; boolean isGranted = ActivityCompat.checkSelfPermission(activity, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; if (isMinSDKM || isGranted) { return; } requestRecordAudioPermission(); } private void requestRecordAudioPermission() { if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.RECORD_AUDIO) || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_COARSE_LOCATION) || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.CAMERA) || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) || ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.READ_EXTERNAL_STORAGE)) { ActivityCompat.requestPermissions(activity, new String[]{ Manifest.permission.RECORD_AUDIO, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1); } else { ActivityCompat.requestPermissions(activity, new String[]{ Manifest.permission.RECORD_AUDIO, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1); } } }