本文在Android中实现查询上海地区公共交通卡余额的功能,以卡号为关键字,其它地区不在查询范围。

先来2张效果图(本人不做UI,界面有点简单啊,莫怪莫怪)

视图文件

画了个简单的EditText用于输入卡号,Button用来确定查询

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="com.longjingtech.ljhotelandroidapp.HotelServiceActivity">

<EditText

android:id="@+id/traffic_check_edittext"

android:hint="@string/traffic_check_hint_textview"

android:layout_marginTop="200dp"

android:layout_gravity="center"

android:gravity="center"

android:maxLength="15"

android:drawableLeft="@drawable/search"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<Button

android:id="@+id/traffic_check_button"

android:gravity="center"

android:layout_gravity="center"

android:text="@string/traffic_check_start"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

</LinearLayout>

核心代码

//查询API地址

String requestUrl = "http://220.248.75.36/handapp/PGcardAmtServlet?arg1=";

editText = (EditText)findViewById(R.id.traffic_check_edittext);

button = (Button)findViewById(R.id.traffic_check_button);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

userCardNum = editText.getText().toString();

if (userCardNum.isEmpty()) {

Toast.makeText(HotelServiceActivity.this,"卡号不能为空,请重新输入",Toast.LENGTH_SHORT).show();

}

else {

//清空输入框的内容

editText.setText("");

//start to check balance

new Thread(new Runnable() {

@Override

public void run() {

Looper.prepare();

HttpClient httpClient = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(requestUrl + userCardNum);

try {

HttpResponse httpResponse = httpClient.execute(httpPost);

Log.e(TAG,"retCode: " + httpResponse.getStatusLine().getStatusCode());

if (httpResponse.getStatusLine().getStatusCode() == 200) {

htmlResponse = EntityUtils.toString(httpResponse.getEntity(),"utf-8");

/*

* 返回数据格式 null('金额')

* */

resultBalance = htmlResponse.substring(6,htmlResponse.length() - 3);

AlertDialogSingleButton.Builder builder = new AlertDialogSingleButton.Builder(HotelServiceActivity.this);

builder.setMessage("卡号" + userCardNum + "的余额为 " + resultBalance)

.setPositiveButton(R.string.vod_exit_ok, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

}

}).create().show();

}

} catch (IOException e) {

e.printStackTrace();

}

Looper.loop();

}

}).start();

}

}

});

经过测试,通过这种方法查询有一天时间的延迟,应该是查询中心与公交数据中心没有做到实时同步,不过对于用户的正常使用,完全不是问题,赶紧自己动手试试吧。

自做Android App查询上海市公交卡余额相关推荐

  1. python selenium 自动化查询上海公交卡余额,并邮件通知

    1.下载python安装. https://www.python.org/downloads/release/python-351/ 2.安装selenium 2.1.通过pip 安装 pip ins ...

  2. 卡苹果6plus在线_嘉兴公交“嘉通行”APP上线,公交卡可以在线充值啦!

    4月30日,"嘉通行"APP正式上线运营,该APP集实体公交卡在线充值.年检.公交动态信息查询.嘉兴公交乘车码等功能于一体.具有NFC全功能安卓手机,可直接对实体公交卡进行充值.补 ...

  3. 在线查询交通卡公交卡余额

    今天无意中发现一个可以在线查询上海交通卡余额的网站,非常快捷方便,记录一下 ,以备以后用到. zoz.la

  4. 小米运动APP小米手环公交卡充值,出现参数非法错误

    小米远动APP,小米手环4,公交卡充值,在付款时弹出上图内容,以前好的突然成这样,网上找了解决方案未果,后来发现在手机管家里(我的是红米K30)选择手机管家,然后选择应用管理,然后选择右上角的默认应用 ...

  5. Android 开发之实现公交卡扣费功能

    对公交卡实现扣费功能主要分以下几个部分: 1.读取公交卡的余额 2.扣费 3.重获Tac 4.获取PSAMID 5.获取相应的参数 首先我们先看下实现这些功能的案例布局 <span style= ...

  6. android通过NFC读取公交卡的余额和交易记录

    通过NFC的读模式,读取公交卡的余额和交易记录.这是一个开源的工程,可以读取深圳通.羊城通.北京卡.八达通.武汉通等等. 读取分四个步骤: 1.select PSF (1PAY.SYS.DDF01) ...

  7. Android app性能优化解决卡慢顿之布局优化

    前面博客分析了导致app卡顿慢的直接原因,这里就从原因出发,分析一些优化方案(这里主要是从直接影响渲染机制的布局相关进行分析) 1) Invalidations, Layouts, and Perfo ...

  8. android怎么添加地铁卡,安卓手机公交卡怎么刷

    安卓手机还能刷公交?安卓手机新推出的功能可以当公交卡用?是不是很新颖?有兴趣的朋友可以来了解一下. 12月19日,三星SAMSUNG Pay终于支持的公交卡功能,首批开通城市仅限北京上海,而此前小米M ...

  9. 支持nfc的android手机型号,哪些手机型号支持刷公交卡 支持nfc功能的手机有哪些汇总...

    随着手机的智能化,越来越多支持NFC功能.当你的手机支持NFC功能后,即可成功充值公交卡或充当公交卡,直接刷手机乘公交,很方便智能的功能.那么,哪些手机型号支持刷公交卡呢?一起来本文看看吧! 哪些手机 ...

最新文章

  1. A Learned Representation for Artistic Style论文理解
  2. 删除文件中指定的一行
  3. 通过串口输入控制指令控制图像在VGA显示器中的显示位置
  4. 项目中常用的sql整理和详细01
  5. 某马Java架构师实战学习手册
  6. 《PHP求职宝典》--Web设计页面笔记
  7. 专题1.1——Exchange2013部署前准备条件
  8. Python 之 Python2 和 Python3 的区别
  9. 喜马拉雅 xm文件转m4a_喜马拉雅电台、课程语音如何转成文字?
  10. 111_Power Pivot 24小时维度:累计、同比、环比相关
  11. MapReduce Service更换集群外部时钟源,仅需10步
  12. 用RT Server Customizer定制Windows 2008 R2安装光盘
  13. 模组厂商对话 MTK:智能音箱市场谈红海还早,下一个爆品将诞生丨WARE 2018
  14. 欧姆龙plc交互协议hostlink
  15. FastDFS实现原理及流程
  16. python爬虫——彼岸图网
  17. 浙江省高校教师职称计算机考试成绩查询系统,浙江省高校招生考试信息管理系统...
  18. 魔兽十区服务器人最多,十区毁灭计划 新一轮wow大服务器实装公告
  19. python 3 5的值_杨桃Python基础教程第5章:Python数据类型(3)列表s[M:n]值,的,三,smn,取值...
  20. 第一章概述-------第一节--1.6 计算机网络的性能

热门文章

  1. FOMO的量子商用黎明
  2. CF AIM Tech Round 5 (rated, Div. 1 + Div. 2) B. Unnatural Conditions 思维 ʕ •ᴥ•ʔ
  3. 用vue仿贝壳地图找房功
  4. 基于Android的地铁查询系统app-计算机毕业设计
  5. 【原创】基于SSM框架的电影在线观看网站设计与实现
  6. python 统计各个文件夹图片数目的柱状图,并给各个类标注标签
  7. 修复损坏的Outlook个人文件夹(PST)文件
  8. Perceptive Advisors携手多个战略联盟创立联拓生物(LianBio)并建构营运平台
  9. 剑网3显示服务器维护,11点10分服务器维护是什么鬼
  10. CSS中大于号[]的含义