Android 开发之实现公交卡扣费功能
来源:互联网 发布:plc编程标准 编辑:程序博客网 时间:2024/05/17 02:02
对公交卡实现扣费功能主要分以下几个部分:
1.读取公交卡的余额
2.扣费
3.重获Tac
4.获取PSAMID
5.获取相应的参数
首先我们先看下实现这些功能的案例布局
<span style="font-size:18px;"><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.cpucard.library.MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/ReadBalance" android:layout_width="fill_parent" android:layout_height="60sp" android:layout_weight="1" android:text="读余额"/> <Button android:id="@+id/MinusFee" android:layout_width="fill_parent" android:layout_height="60sp" android:layout_weight="1" android:text="扣费"/> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/RegetTac" android:layout_width="fill_parent" android:layout_height="60sp" android:layout_weight="1" android:text="重获tac"/> <Button android:id="@+id/ReadPSAMID" android:layout_width="fill_parent" android:layout_height="60sp" android:layout_weight="1" android:text="获取PSAMID"/> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/GetParameter" android:layout_width="fill_parent" android:layout_height="60sp" android:layout_weight="1" android:text="获取参数"/> </LinearLayout></LinearLayout></span>
首先 我们要初始化卡对象
//创建对象
private c cardManager;
private String cpuCardBalance = "", serialNum = "";
cardManager = new c();
然后,我们要设置扣钱方式
cardManager.a(1, 3, true);
功能部分
获取卡的参数
<span style="font-size:18px;">// 获取卡的参数private String getAllParams() {// TODO Auto-generated method stub// 获取城市代码long cardCityCode = cardManager.h();// 获取行业代码long cardBusinessCode = cardManager.i();// 获取卡号long cardPhysicsNumber = cardManager.j();// 获取卡版本long cardVer = cardManager.k();// 获取卡类型long cardType = cardManager.l();// 获取卡启用日期long cardStartDate = cardManager.m();// 卡交易次数long cardTradeCount = cardManager.n();// 终端机流水String termSeq = cardManager.o();// CPU卡内号String cpuCardNo = cardManager.q();// 卡表面号Long cardSurfaceNumber = cardManager.a(String.valueOf(Long.toHexString(cardPhysicsNumber)));return ("cardCityCode=" + cardCityCode + ",cardBusinessCode="+ cardBusinessCode + ",cardPhysicsNumber=" + cardPhysicsNumber+ ",cardVer=" + cardVer + ",cardType=" + cardType+ ",cardStartDate=" + cardStartDate + ",cardTradeCount="+ cardTradeCount + ",termSeq=" + termSeq + ",cpuCardNo="+ cpuCardNo + ",cardSurfaceNumber=" + cardSurfaceNumber);}</span>获取PSAMID
<span style="font-size:18px;">// 获取PSAMIDprivate String getPsamid() {// TODO Auto-generated method stubreturn cardManager.f();}</span>
扣钱的实现方法
<span style="font-size:18px;">private String getAccount(int realChargeValue,String balance) {// TODO Auto-generated method stubDate date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");SimpleDateFormat timeFormat = new SimpleDateFormat("HHmmss");return cardManager.a(realChargeValue,sdf.format(date), timeFormat.format(date), balance, "E00A0601");}</span>重获Tac的实现方法
<span style="font-size:18px;">private String getReTac() {// TODO Auto-generated method stubreturn cardManager.e();}</span>
获取余额实现方法
<span style="font-size:18px;">private String getBalance() {// TODO Auto-generated method stubreturn cardManager.d();}</span>
最后,我们增加个人性化的功能,提示扣钱成功!就像我们乘公交车一样。滴~~学生卡。
<span style="font-size:18px;">//扣费成功 响铃 void playSound() {// TODO Auto-generated method stub MediaPlayermMediaPlayer = MediaPlayer.create(this, R.raw.di); SoundPool soundPool= new SoundPool(4, AudioManager.STREAM_MUSIC, 100);//this.playSound(2, 0); mMediaPlayer.setLooping(false);if (!mMediaPlayer.isPlaying()) {mMediaPlayer.start();}}</span>附件:
滴的声音
http://pan.baidu.com/s/1hrSxii4
0 0
- Android 开发之实现公交卡扣费功能
- 公交换乘功能实现方法
- (六)Android百度公交开发—百度地图API之公交换乘方案搜索
- Android百度公交开发(六)——百度地图API之公交换乘方案搜索
- ios开发之公交卡系统的设计与实现
- Android通讯录开发之实现删除功能
- Android开发之实现锁屏功能
- Android开发之拍照功能实现
- Android开发之拍照功能实现
- Android开发之实现拨号功能
- Android开发之二维码功能实现
- Android开发学习之设置Android壁纸的功能实现
- [IOS开发教程] ios开发之公交卡系统的设计与实现
- Android开发之拍照功能实现(附源码)
- Android开发之拍照功能实现(附源码)
- Android开发学习之摇一摇功能的简单实现
- Android开发学习之闹钟功能的简单实现
- Android开发学习之分享功能的实现
- C++Primer(第10章课后程序题源代码)
- iOS开发技巧:设置App icon图标及修改应用程序名
- SGU105 Div 3
- 解决win 10系统启动Genymotion 模拟器失败
- codevs 4768 跳石头(二分答案)
- Android 开发之实现公交卡扣费功能
- IOS开发中NSRunloop跟NSTimer的问题
- Socket
- Profiling Python using cProfile: a concrete case
- Android中5种访问UI线程的方法
- VMware虚拟机上的网络连接模式
- 用公式求π的值
- 使用ShareSDK做第三方登陆功能,http无法连接和qq空间分享没有出现的解决方法
- 关于Diffie-Hellman密钥协商机制以及中间人攻击