Android 中门磁自动警报实例总结。。。。

在这个例子中主要的就是有一个门磁警报系统,简单的说,门打开 警报就会响。


废话不多说 直接上代码:


这是核心方法代码:

Anfang.class


private void init() {
		rg_securityMode = (RadioGroup) getActivity().findViewById(
				R.id.rg_securityMode);
		modesharedpreference = getActivity().getSharedPreferences("UserSP",
				Context.MODE_PRIVATE);
		final SharedPreferences.Editor editor = modesharedpreference.edit();
		if (modesharedpreference.getBoolean("Mode", false)) {
			rg_securityMode.check(R.id.bt_bufang);
		} else {
			rg_securityMode.check(R.id.bt_chefang);
		}
		rg_securityMode
				.setOnCheckedChangeListener(new OnCheckedChangeListener() {
					@Override
					public void onCheckedChanged(RadioGroup v, int childChecked) {
						switch (childChecked) {
						case R.id.bt_bufang: {
							editor.putBoolean("Mode", true);
							editor.commit();
						}
							break;
						case R.id.bt_chefang: {
							editor.putBoolean("Mode", false);
							editor.commit();
						}
							break;
						}
					}
				});
	}

在mian方法里面去调用上面那个类的方法所传递出来的信息。当你这个APP运行的时候 就会收到信息。

MianActivity.class

List<String> WarningList = new ArrayList<String>();

	Handler refreshMagneticHandler = new Handler() {

		@Override
		public void handleMessage(Message msg) {
			if (msg.what == 123) {
				SharedPreferences modesharedpreference = getSharedPreferences(
						"UserSP", Context.MODE_PRIVATE);
				if (modesharedpreference.getBoolean("Mode", false)) {
					if (msg.obj != (null)) {
						JSONArray jsonAray = (JSONArray) msg.obj;
						try {
							JSONObject jsonObj = jsonAray.getJSONObject(0);
							boolean isWarning = false;
							String WarningInfo = "";
							if (jsonObj.has("value")) {
								if (jsonObj.getString("value").equals("ffff"))
									isWarning = true;
								if (jsonObj.getString("value").equals("0000"))
									isWarning = false;

								System.out
										.println("01234567895132" + isWarning);
							}
							if (jsonObj.has("WarningInfo")) {
								WarningInfo = jsonObj.getString("WarningInfo");
								if (isWarning) {
									if (!WarningList.contains(WarningInfo)) {
										WarningList.add(WarningInfo);
										final MediaPlayer mp = MediaPlayer
												.create(MainActivity.this,
														R.raw.alarm);
										try {
											if (mp != null)
												mp.stop();
											mp.prepare();
											mp.start();
										} catch (Exception e) {
											e.printStackTrace();
										}
										// 播放mp3

										try {
											new AlertDialog.Builder(
													MainActivity.this)
													.setTitle(WarningInfo)
													.setPositiveButton(
															acroMultiGlobal
																	.getDisplayValue(getString(R.string.OK)),
															new DialogInterface.OnClickListener() {

																@Override
																public void onClick(
																		DialogInterface arg0,
																		int arg1) {
																	// TODO
																	// Auto-generated
																	// method
																	// stub
																	mp.stop();
																}

															}).show();
										} catch (Exception e) {
											e.printStackTrace();
										}// 弹窗

									}
								} else if (!isWarning) {
									WarningList.remove(WarningInfo);
								}
							}
						} catch (JSONException e) {
							e.printStackTrace();
						}
					}
				} else if (!modesharedpreference.getBoolean("Mode", false))
					WarningList.removeAll(WarningList);
				super.handleMessage(msg);
			}
		}
	};
	Timer timer_refreshMagneticWindowTask = new Timer();

	TimerTask refreshMagneticWindowTask = new TimerTask() {

		@Override
		public void run() {

			Message msg = new Message();
			msg.what = 123;
			msg.obj = new Security(MainActivity.this).GetSecurity();
			refreshMagneticHandler.sendMessage(msg);
		}
	};
	public void initTimer_Window() {
		try {
			timer_refreshMagneticWindowTask.schedule(refreshMagneticWindowTask,
					3000, 3000);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
最后。就是在 onCreate()方法里面去执行
 initTimer_Window()
方法即可。

上面的例子中用到了

SharedPreferences 
存储数据。用到了handler方法传递数据。用到了Timer定时器的方法。如果有什么不理解这些方法。可以去百度或者后面我会继续更博我前面的文章,有这些方法的介绍。欢迎大家互相学习互相讨论。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值