ConnectApActivity.java 源代码
package liteos.addCamera;
import activity.addCamera.ConfirmApDeviceActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.ColorDrawable;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
import base.HiActivity;
import com.hichip.base.HiLog;
import com.hichip.campro.R;
import com.hichip.tools.HiLitosSDK;
import com.hichip.tools.HiSearchSDK;
import common.Constant;
import common.HiDataValue;
import common.TitleView;
import liteos.adapter.ApSetPagerAdapter;
import liteos.adapter.ScaleAlphaPageTransformer;
import main.MainActivity;
import org.json.JSONException;
import org.json.JSONObject;
import utils.HiTools;
import utils.MyToast;
import utils.WifiAdmin;
import utils.WifiUtils;
public class ConnectApActivity extends HiActivity implements View.OnClickListener {
private HiLitosSDK hiLitosSDK;
private boolean isGoWiFi;
private boolean isLiteOs;
LinearLayout linear;
private String mCurrentPhoneWiFi;
private String oldSsid;
private NetBroadcastReceiver f1030receiver;
private HiSearchSDK searchSDK;
private CountDownTimer timer;
TitleView title;
TextView tv_ap_tips;
TextView tv_sys_wifi;
ViewPager vp_ap_set;
private int[] mPics = {R.mipmap.ap1, R.mipmap.ap2, R.mipmap.ap3, R.mipmap.ap4};
private int mCurrentItem = 0;
String ssid = "";
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message message) {
HiSearchSDK.HiSearchResult hiSearchResult;
String str;
super.handleMessage(message);
if (message.what == -1879048187 && (hiSearchResult = (HiSearchSDK.HiSearchResult) message.obj) != null && !TextUtils.isEmpty(hiSearchResult.uid) && HiTools.checkIsUid(hiSearchResult.uid)) {
ConnectApActivity.this.isSuccess = true;
ConnectApActivity.this.dismissjuHuaDialog();
ConnectApActivity.this.searchSDK.stop();
if (ConnectApActivity.this.timer != null) {
ConnectApActivity.this.timer.cancel();
}
Intent intent = new Intent(ConnectApActivity.this, (Class<?>) ConfirmApDeviceActivity.class);
if (HiTools.isWifiConnected(ConnectApActivity.this)) {
str = WifiUtils.getCurrentWifiSSID(ConnectApActivity.this, true);
} else {
str = HiDataValue.mHi_wifiConnect_Q.length() > 0 ? HiDataValue.mHi_wifiConnect_Q : "";
}
intent.putExtra(HiDataValue.EXTRAS_KEY_UID, hiSearchResult.uid);
intent.putExtra("ssid", str);
intent.putExtra("mCurrentPhoneWiFi", ConnectApActivity.this.mCurrentPhoneWiFi);
ConnectApActivity.this.startActivity(intent);
ConnectApActivity.this.finish();
}
}
};
private boolean isSuccess = false;
@Override
protected int setLayoutId() {
return R.layout.activity_connect_ap;
}
@Override
protected void init(Bundle bundle) {
getIntentData();
initViewAndData();
setListeners();
}
private void getIntentData() {
this.isLiteOs = getIntent().getBooleanExtra("liteos", false);
String stringExtra = getIntent().getStringExtra("mCurrentPhoneWiFi");
this.mCurrentPhoneWiFi = stringExtra;
if (TextUtils.isEmpty(stringExtra)) {
String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, true);
this.mCurrentPhoneWiFi = currentWifiSSID;
this.mCurrentPhoneWiFi = currentWifiSSID;
}
HiLog.e(this.isLiteOs + ":::" + this.mCurrentPhoneWiFi);
StringBuilder sb = new StringBuilder();
sb.append("mCurrentPhoneWiFi:::");
sb.append(this.mCurrentPhoneWiFi);
HiLog.e(sb.toString());
}
private void initViewAndData() {
this.title.setTitle(getString(R.string.add_camera_way));
this.title.setButton(0);
this.title.setRightTxtBack(R.mipmap.x_bule);
this.title.setNavigationBarButtonListener(new TitleView.NavigationBarButtonListener() {
@Override
public final void OnNavigationButtonClick(int i) {
ConnectApActivity.this.lambda$initViewAndData$0$ConnectApActivity(i);
}
});
}
public void lambda$initViewAndData$0$ConnectApActivity(int i) {
if (i == 0) {
finish();
} else {
if (i != 2) {
return;
}
startActivity(new Intent(this, (Class<?>) MainActivity.class), true);
}
}
private void setListeners() {
this.tv_sys_wifi.setOnClickListener(this);
int i = (int) ((getResources().getDisplayMetrics().widthPixels * 7.0f) / 10.0f);
this.vp_ap_set.measure(0, 0);
ViewGroup.LayoutParams layoutParams = this.vp_ap_set.getLayoutParams();
if (layoutParams == null) {
layoutParams = new ViewGroup.LayoutParams(i, -1);
} else {
layoutParams.width = i;
}
this.vp_ap_set.setLayoutParams(layoutParams);
this.vp_ap_set.setAdapter(new ApSetPagerAdapter(this.mPics));
setIndicator();
this.vp_ap_set.setPageMargin(10);
this.vp_ap_set.setOffscreenPageLimit(this.mPics.length);
this.vp_ap_set.setPageTransformer(true, new ScaleAlphaPageTransformer());
this.vp_ap_set.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int i2) {
}
@Override
public void onPageScrolled(int i2, float f, int i3) {
}
@Override
public void onPageSelected(int i2) {
ConnectApActivity.this.linear.getChildAt(ConnectApActivity.this.mCurrentItem).setEnabled(false);
ConnectApActivity.this.linear.getChildAt(i2).setEnabled(true);
if (i2 == 0) {
ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip1));
} else if (i2 == 1) {
ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip2));
} else if (i2 == 2) {
ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip3));
} else if (i2 == 3) {
ConnectApActivity.this.tv_ap_tips.setText(ConnectApActivity.this.getString(R.string.ap_tip4));
}
ConnectApActivity.this.mCurrentItem = i2;
}
});
}
private void setIndicator() {
for (int i = 0; i < this.mPics.length; i++) {
View view = new View(this);
view.setBackgroundResource(R.drawable.selector_indicator);
view.setEnabled(false);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20);
if (i != 0) {
layoutParams.leftMargin = 30;
}
view.setLayoutParams(layoutParams);
this.linear.addView(view);
}
this.linear.getChildAt(0).setEnabled(true);
}
@Override
public void onClick(View view) {
if (view.getId() != R.id.tv_sys_wifi) {
return;
}
if (HiDataValue.mHi_PhoneSys_Q) {
if (HiDataValue.wifiAdmin == null) {
HiDataValue.wifiAdmin = new WifiAdmin(getApplicationContext());
}
if (HiDataValue.wifiAdmin != null) {
HiDataValue.wifiAdmin.removeNetwork_Q();
}
}
Intent intent = new Intent("android.settings.WIFI_SETTINGS");
intent.setFlags(268435456);
startActivity(intent);
this.isGoWiFi = true;
HiDataValue.isAPChooseWifi = true;
}
private void registerBroadcastReceiver() {
if (this.f1030receiver == null) {
this.f1030receiver = new NetBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
registerReceiver(this.f1030receiver, intentFilter);
}
}
private void unRegisterBroadcastReceiver() {
NetBroadcastReceiver netBroadcastReceiver = this.f1030receiver;
if (netBroadcastReceiver != null) {
unregisterReceiver(netBroadcastReceiver);
}
}
@Override
public void onResume() {
super.onResume();
HiDataValue.isAPChooseWifi = false;
if (HiTools.isWifiConnected(this)) {
this.ssid = WifiUtils.getCurrentWifiSSID(this, true);
} else if (HiDataValue.mHi_wifiConnect_Q.length() > 0) {
this.ssid = HiDataValue.mHi_wifiConnect_Q;
}
if (this.isGoWiFi) {
String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, true);
if (!TextUtils.isEmpty(this.mCurrentPhoneWiFi) && !TextUtils.isEmpty(currentWifiSSID) && currentWifiSSID.startsWith(HiDataValue.START_WITH_IPCAM)) {
if (this.mCurrentPhoneWiFi.equals(currentWifiSSID)) {
return;
}
startSearch();
startSearchLiteos(currentWifiSSID);
return;
}
if (TextUtils.isEmpty(this.mCurrentPhoneWiFi) || !this.mCurrentPhoneWiFi.equals(currentWifiSSID)) {
MyToast.showToast(this, getString(R.string.not_found_device));
}
}
}
private void startSearch() {
String currentWifiSSID = WifiUtils.getCurrentWifiSSID(this, true);
HiLog.e("mCurrentPhoneWiFi:::" + this.mCurrentPhoneWiFi + ":::" + currentWifiSSID);
if (this.mCurrentPhoneWiFi.equals(currentWifiSSID)) {
return;
}
this.isGoWiFi = false;
showLoadDialog(getString(R.string.searching_device), false, false);
CountDownTimer countDownTimer = this.timer;
if (countDownTimer != null) {
countDownTimer.cancel();
this.timer = null;
}
HiSearchSDK hiSearchSDK = new HiSearchSDK(new HiSearchSDK.ISearchResult() {
@Override
public void onReceiveSearchResult(HiSearchSDK.HiSearchResult hiSearchResult) {
if (TextUtils.isEmpty(hiSearchResult.uid.substring(0, 4))) {
return;
}
Message obtainMessage = ConnectApActivity.this.mHandler.obtainMessage();
obtainMessage.obj = hiSearchResult;
obtainMessage.what = HiDataValue.HANDLE_MESSAGE_SCAN_RESULT;
ConnectApActivity.this.mHandler.sendMessage(obtainMessage);
}
});
this.searchSDK = hiSearchSDK;
hiSearchSDK.search2();
this.timer = new CountDownTimer(15000, 1000L) {
@Override
public void onTick(long j) {
}
@Override
public void onFinish() {
ConnectApActivity.this.dismissLoadDialog();
ConnectApActivity connectApActivity = ConnectApActivity.this;
MyToast.showToast(connectApActivity, connectApActivity.getString(R.string.not_search_device));
View inflate = View.inflate(ConnectApActivity.this, R.layout.pup_ipcam_search_fail, null);
final PopupWindow popupWindow = new PopupWindow(inflate);
popupWindow.setBackgroundDrawable(new ColorDrawable(0));
popupWindow.setWidth(-1);
popupWindow.setHeight(-1);
popupWindow.setFocusable(true);
popupWindow.showAtLocation(inflate, 17, 0, 0);
((TextView) inflate.findViewById(R.id.tv_know)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
popupWindow.dismiss();
}
});
}
}.start();
}
private void startSearchLiteos(String str) {
this.isGoWiFi = false;
HiLitosSDK hiLitosSDK = new HiLitosSDK(new HiLitosSDK.ILitosResult() {
@Override
public void onReceiveLitosResult(String str2, int i, int i2, int i3) {
if (!TextUtils.isEmpty(str2) && str2.split("\r\n").length > 3) {
String[] split = str2.split("\r\n");
String str3 = split[split.length - 1];
try {
ConnectApActivity.this.isSuccess = true;
JSONObject jSONObject = new JSONObject(str3).getJSONObject("devinfo");
String string = jSONObject.getString(HiDataValue.EXTRAS_KEY_UID);
String string2 = jSONObject.getString("mac");
String string3 = jSONObject.getString(Constant.MODE);
Intent intent = new Intent(ConnectApActivity.this, (Class<?>) OSConfirmApDeviceActivity.class);
intent.putExtra(HiDataValue.EXTRAS_KEY_UID, string);
intent.putExtra("ssid", ConnectApActivity.this.ssid);
intent.putExtra("type", 2);
intent.putExtra("mCurrentPhoneWiFi", ConnectApActivity.this.mCurrentPhoneWiFi);
intent.putExtra("isAP", true);
intent.putExtra(Constant.MAC, string2);
intent.putExtra(Constant.IP_STR, HiTools.getIPAddress(ConnectApActivity.this));
intent.putExtra(Constant.MODE, string3);
ConnectApActivity.this.startActivity(intent);
ConnectApActivity.this.finish();
return;
} catch (JSONException e) {
e.printStackTrace();
return;
}
}
new Handler().post(new Runnable() {
@Override
public void run() {
ConnectApActivity.this.dismissLoadDialog();
if (ConnectApActivity.this.isSuccess) {
return;
}
MyToast.showToast(ConnectApActivity.this, ConnectApActivity.this.getString(R.string.netword_abnormal));
}
});
}
});
this.hiLitosSDK = hiLitosSDK;
hiLitosSDK.HttpRequest("192.168.55.1", 15555, "/liteos/param.cgi?cmd=getdevinfo", 5, 6);
}
public class NetBroadcastReceiver extends BroadcastReceiver {
public NetBroadcastReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo networkInfo;
if (!"android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction()) || (networkInfo = (NetworkInfo) intent.getParcelableExtra("networkInfo")) == null) {
return;
}
if (NetworkInfo.State.CONNECTED == networkInfo.getState() && networkInfo.isAvailable()) {
if (networkInfo.getType() == 1 || networkInfo.getType() == 0) {
Log.i("TAG", "连上::" + WifiUtils.getCurrentWifiSSID(ConnectApActivity.this, true));
return;
}
return;
}
Log.i("TAG", "断开");
}
}
@Override
public void onDestroy() {
super.onDestroy();
CountDownTimer countDownTimer = this.timer;
if (countDownTimer != null) {
countDownTimer.cancel();
this.timer = null;
}
HiLitosSDK hiLitosSDK = this.hiLitosSDK;
if (hiLitosSDK != null) {
hiLitosSDK.litosstopServerSocket();
}
unRegisterBroadcastReceiver();
}
}