├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── gradle.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── BianQian.iml ├── QianDao.iml ├── README.md ├── app ├── .gitignore ├── app.iml ├── build.gradle ├── libs │ └── BmobSDK_V3.4.2_0727.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── jkxqj │ │ └── qiandao │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── jkxqj │ │ └── qiandao │ │ ├── UIController │ │ ├── LoginActivity.java │ │ ├── MainActivity.java │ │ └── RegisterActivity.java │ │ └── model │ │ ├── QianDao.java │ │ ├── QianTui.java │ │ └── User.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── layout │ ├── activity_login.xml │ ├── activity_main.xml │ └── activity_register.xml │ ├── menu │ ├── menu_info.xml │ ├── menu_login.xml │ ├── menu_main.xml │ └── menu_register.xml │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | BianQian -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | jdk1.7 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /BianQian.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /QianDao.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BianQian 2 | [便签]签到app,安卓客户端,服务端使用Bmob服务,利用办公室wifi的MAC地址签到,作者:JKXQJ 3 | http://blog.csdn.net/acmjk/article/details/47206577 -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/app.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 21 5 | buildToolsVersion "21.1.2" 6 | 7 | defaultConfig { 8 | applicationId "com.jkxqj.qiandao" 9 | minSdkVersion 15 10 | targetSdkVersion 21 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | compile 'com.android.support:appcompat-v7:21.0.3' 25 | compile 'com.android.support:support-annotations:21.0.3' 26 | compile 'com.android.support:support-v4:21.0.3' 27 | compile files('libs/Bmob_Push_V0.6beta_20150408.jar') 28 | compile files('libs/android-support-v4.jar') 29 | compile files('libs/BmobSDK_V3.4.2_0727.jar') 30 | compile files('libs/filechoose.jar') 31 | } 32 | -------------------------------------------------------------------------------- /app/libs/BmobSDK_V3.4.2_0727.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkxqj/BianQian/7ad9f24d628bfaea28276a28c52d99aada6cb0cd/app/libs/BmobSDK_V3.4.2_0727.jar -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\androidSDK\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/jkxqj/qiandao/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.jkxqj.qiandao; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 17 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/jkxqj/qiandao/UIController/LoginActivity.java: -------------------------------------------------------------------------------- 1 | package com.jkxqj.qiandao.UIController; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | import android.view.View; 7 | import android.widget.EditText; 8 | import android.widget.Toast; 9 | import com.jkxqj.qiandao.R; 10 | import com.jkxqj.qiandao.model.User; 11 | import java.util.List; 12 | import cn.bmob.v3.Bmob; 13 | import cn.bmob.v3.BmobQuery; 14 | import cn.bmob.v3.listener.FindListener; 15 | 16 | public class LoginActivity extends Activity { 17 | 18 | private EditText account_et; 19 | private EditText password_et; 20 | @Override 21 | protected void onCreate(Bundle savedInstanceState) { 22 | super.onCreate(savedInstanceState); 23 | setContentView(R.layout.activity_login); 24 | Bmob.initialize(this, "6e5d0ddd2563ca046cad551add73243e"); 25 | account_et=(EditText)findViewById(R.id.account_et); 26 | password_et=(EditText)findViewById(R.id.password_et); 27 | } 28 | 29 | 30 | //登录按钮响应事件 31 | public void login_btn(View view){ 32 | final String account=account_et.getText().toString(); 33 | final String password=password_et.getText().toString(); 34 | 35 | if(account.equals("")){ 36 | Toast.makeText(LoginActivity.this, "请输入您的手机号!", Toast.LENGTH_LONG).show(); 37 | } 38 | else if(password.equals("")){ 39 | Toast.makeText(LoginActivity.this,"请输入您的密码!",Toast.LENGTH_LONG).show(); 40 | }else { 41 | BmobQuery query=new BmobQuery<>(); 42 | query.addWhereEqualTo("account",account); 43 | query.findObjects(LoginActivity.this,new FindListener() { 44 | @Override 45 | public void onSuccess(List users) { 46 | if(users.size()==0){ 47 | Toast.makeText(LoginActivity.this,"账户不存在!",Toast.LENGTH_LONG).show(); 48 | return; 49 | } 50 | for(User a:users){ 51 | if(!a.getPassword().equals(password)) { 52 | Toast.makeText(LoginActivity.this, "账户或密码有误,请重新输入!", Toast.LENGTH_LONG).show(); 53 | return; 54 | } 55 | 56 | else{ 57 | Intent intent =new Intent(); 58 | intent.setClass(LoginActivity.this,MainActivity.class); 59 | intent.putExtra("account",account); 60 | intent.putExtra("realName",a.getRealName()); 61 | startActivity(intent); 62 | } 63 | } 64 | 65 | 66 | } 67 | 68 | @Override 69 | public void onError(int i, String s) { 70 | Toast.makeText(LoginActivity.this,"登录失败",Toast.LENGTH_LONG).show(); 71 | } 72 | }); 73 | } 74 | } 75 | 76 | //注册按钮响应事件 77 | public void register_btn(View view) { 78 | Intent intent=new Intent(); 79 | intent.setClass(LoginActivity.this,RegisterActivity.class); 80 | startActivity(intent); 81 | } 82 | 83 | 84 | //退出按钮响应事件 85 | public void quit_login_btn(View view) { 86 | finish(); 87 | } 88 | 89 | } 90 | -------------------------------------------------------------------------------- /app/src/main/java/com/jkxqj/qiandao/UIController/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.jkxqj.qiandao.UIController; 2 | 3 | import android.app.Activity; 4 | import android.app.AlertDialog; 5 | import android.content.Context; 6 | import android.content.Intent; 7 | import android.net.ConnectivityManager; 8 | import android.net.NetworkInfo; 9 | import android.net.wifi.WifiInfo; 10 | import android.net.wifi.WifiManager; 11 | import android.os.Bundle; 12 | import android.util.Log; 13 | import android.view.View; 14 | import android.widget.TextView; 15 | import android.widget.Toast; 16 | import com.jkxqj.qiandao.R; 17 | import com.jkxqj.qiandao.model.QianDao; 18 | import com.jkxqj.qiandao.model.QianTui; 19 | import java.net.InetAddress; 20 | import java.net.NetworkInterface; 21 | import java.net.SocketException; 22 | import java.text.SimpleDateFormat; 23 | import java.util.Date; 24 | import java.util.Enumeration; 25 | import java.util.List; 26 | 27 | import cn.bmob.v3.BmobQuery; 28 | import cn.bmob.v3.listener.FindListener; 29 | import cn.bmob.v3.listener.SaveListener; 30 | 31 | public class MainActivity extends Activity { 32 | 33 | private TextView hello; 34 | public static String IP; 35 | public static String MAC; 36 | 37 | 38 | @Override 39 | protected void onCreate(Bundle savedInstanceState) { 40 | super.onCreate(savedInstanceState); 41 | setContentView(R.layout.activity_main); 42 | hello = (TextView) findViewById(R.id.hello); 43 | Intent intent = getIntent(); 44 | Bundle bundle = intent.getExtras(); 45 | String realName = bundle.getString("realName"); 46 | 47 | hello.setText("你好," + realName); 48 | } 49 | 50 | //检查连接的是什么网络 51 | public Integer checkWifi(Context context) { 52 | ConnectivityManager ConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 53 | NetworkInfo mNetworkInfo = ConnectivityManager.getActiveNetworkInfo(); 54 | if (mNetworkInfo.getState() == NetworkInfo.State.CONNECTED) { 55 | if (mNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE) { 56 | return 1; //返回1,连接的是移动网络 57 | } else if (mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) { 58 | return 2; //返回2,连接的是wifi 59 | } 60 | } else { 61 | return 3; //返回3,没有连接。 62 | } 63 | return 3; 64 | } 65 | //获取IP 66 | public String getLocalIpAddress() { 67 | try { 68 | for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { 69 | NetworkInterface intf = en.nextElement(); 70 | for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { 71 | InetAddress inetAddress = enumIpAddr.nextElement(); 72 | if (!inetAddress.isLoopbackAddress()) { 73 | return inetAddress.getHostAddress().toString(); 74 | } 75 | } 76 | } 77 | } catch (SocketException ex) { 78 | Log.e("IP 地址为:", ex.toString()); 79 | } 80 | return null; 81 | } 82 | //获取MAC 83 | public String getLocalMacAddress() { 84 | WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 85 | WifiInfo info = wifi.getConnectionInfo(); 86 | return info.getMacAddress(); 87 | } 88 | 89 | public void Dao(View view) { 90 | if (checkWifi(MainActivity.this) == 1) { 91 | Toast.makeText(MainActivity.this, "您连接的是移动网络,签到失败!", Toast.LENGTH_LONG).show(); 92 | } else if (checkWifi(MainActivity.this) == 3) { 93 | Toast.makeText(MainActivity.this, "您没有连接网络,签到失败!", Toast.LENGTH_LONG).show(); 94 | } else if (checkWifi(MainActivity.this) == 2) { 95 | MAC=getLocalMacAddress(); 96 | IP=getLocalIpAddress(); 97 | Date date=new Date(); 98 | SimpleDateFormat sdf=new SimpleDateFormat("yy/MM/dd HH:mm:ss"); 99 | final String stime=sdf.format(date); 100 | Intent intent = getIntent(); 101 | Bundle bundle = intent.getExtras(); 102 | String realName = bundle.getString("realName"); 103 | String account = bundle.getString("account"); 104 | 105 | QianDao qiandao=new QianDao(); 106 | qiandao.setAccount(account); 107 | qiandao.setRealName(realName); 108 | qiandao.setDaoTime(stime); 109 | qiandao.setIP(IP); 110 | qiandao.setMAC(MAC); 111 | qiandao.save(MainActivity.this, new SaveListener(){ 112 | @Override 113 | public void onSuccess() { 114 | Toast.makeText(MainActivity.this, "签到成功!\n IP:"+IP+"\nMAC 地址:"+MAC+"\n时间:"+ stime, Toast.LENGTH_LONG).show(); 115 | } 116 | @Override 117 | public void onFailure(int code, String arg0) { 118 | Toast.makeText(MainActivity.this, "签到失败!", Toast.LENGTH_LONG).show(); 119 | } 120 | }); 121 | } 122 | } 123 | 124 | public void Tui(View view) { 125 | if (checkWifi(MainActivity.this) == 1) { 126 | Toast.makeText(MainActivity.this, "您连接的是移动网络,签退失败!", Toast.LENGTH_LONG).show(); 127 | } else if (checkWifi(MainActivity.this) == 3) { 128 | Toast.makeText(MainActivity.this, "您没有连接网络,签退失败!", Toast.LENGTH_LONG).show(); 129 | } else if (checkWifi(MainActivity.this) == 2) { 130 | MAC=getLocalMacAddress(); 131 | IP=getLocalIpAddress(); 132 | Date date=new Date(); 133 | SimpleDateFormat sdf=new SimpleDateFormat("yy/MM/dd HH:mm:ss"); 134 | final String ttime=sdf.format(date); 135 | Intent intent = getIntent(); 136 | Bundle bundle = intent.getExtras(); 137 | String realName = bundle.getString("realName"); 138 | String account = bundle.getString("account"); 139 | 140 | QianTui qiantui=new QianTui(); 141 | qiantui.setAccount(account); 142 | qiantui.setRealName(realName); 143 | qiantui.setTuiTime(ttime); 144 | qiantui.setIP(IP); 145 | qiantui.setMAC(MAC); 146 | qiantui.save(MainActivity.this, new SaveListener(){ 147 | @Override 148 | public void onSuccess() { 149 | Toast.makeText(MainActivity.this, "签退成功!\n IP:"+IP+"\nMAC 地址:"+MAC+"\n时间:"+ttime, Toast.LENGTH_LONG).show(); 150 | } 151 | @Override 152 | public void onFailure(int code, String arg0) { 153 | Toast.makeText(MainActivity.this, "签退失败!", Toast.LENGTH_LONG).show(); 154 | } 155 | }); 156 | 157 | } 158 | } 159 | 160 | public void Info_Dao(View view) { 161 | Intent intent = getIntent(); 162 | Bundle bundle = intent.getExtras(); 163 | String account = bundle.getString("account"); 164 | BmobQuery query=new BmobQuery<>(); 165 | query.addWhereEqualTo("account",account); 166 | query.findObjects(MainActivity.this,new FindListener() { 167 | @Override 168 | public void onSuccess(List qianDaos) { 169 | 170 | String str=""; 171 | for(QianDao a:qianDaos){ 172 | str+="时间:"+a.getDaoTime()+"\nMAC:"+a.getMAC()+"\nIP:"+a.getIP()+"\n\n"; 173 | } 174 | AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); 175 | builder.setTitle("签到详情"); 176 | builder.setMessage(str); 177 | builder.create().show(); 178 | } 179 | 180 | @Override 181 | public void onError(int i, String s) { 182 | Toast.makeText(MainActivity.this,"查询失败!"+s,Toast.LENGTH_LONG); 183 | } 184 | }); 185 | } 186 | 187 | public void Info_Tui(View view) { 188 | Intent intent = getIntent(); 189 | Bundle bundle = intent.getExtras(); 190 | String account = bundle.getString("account"); 191 | BmobQuery query=new BmobQuery<>(); 192 | query.addWhereEqualTo("account",account); 193 | query.findObjects(MainActivity.this,new FindListener() { 194 | @Override 195 | public void onSuccess(List QianTuis) { 196 | String str=""; 197 | for(QianTui a:QianTuis){ 198 | str+="时间:"+a.getTuiTime()+"\nMAC:"+a.getMAC()+"\nIP:"+a.getIP()+"\n\n"; 199 | } 200 | AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); 201 | builder.setTitle("签退详情"); 202 | builder.setMessage(str); 203 | builder.create().show(); 204 | } 205 | 206 | @Override 207 | public void onError(int i, String s) { 208 | Toast.makeText(MainActivity.this,"查询失败!"+s,Toast.LENGTH_LONG); 209 | } 210 | }); 211 | } 212 | 213 | public void Quit(View view) { 214 | finish(); 215 | } 216 | 217 | } 218 | -------------------------------------------------------------------------------- /app/src/main/java/com/jkxqj/qiandao/UIController/RegisterActivity.java: -------------------------------------------------------------------------------- 1 | package com.jkxqj.qiandao.UIController; 2 | 3 | import android.app.Activity; 4 | import android.support.v7.app.ActionBarActivity; 5 | import android.os.Bundle; 6 | import android.view.Menu; 7 | import android.view.MenuItem; 8 | import android.view.View; 9 | import android.widget.EditText; 10 | import android.widget.Toast; 11 | 12 | import com.jkxqj.qiandao.R; 13 | import com.jkxqj.qiandao.model.User; 14 | 15 | import cn.bmob.v3.listener.SaveListener; 16 | 17 | 18 | public class RegisterActivity extends Activity { 19 | private EditText register_account_et; 20 | private EditText register_password_et; 21 | private EditText password_again_et; 22 | private EditText realName_et; 23 | @Override 24 | protected void onCreate(Bundle savedInstanceState) { 25 | super.onCreate(savedInstanceState); 26 | setContentView(R.layout.activity_register); 27 | register_account_et= (EditText) findViewById(R.id.register_account_et); 28 | register_password_et=(EditText)findViewById(R.id.register_password_et); 29 | password_again_et=(EditText)findViewById(R.id.password_again_et); 30 | realName_et=(EditText)findViewById(R.id.realName_et); 31 | } 32 | 33 | public void register_sure(View view){ 34 | String register_password=register_password_et.getText().toString(); 35 | String password_again=password_again_et.getText().toString(); 36 | String register_account=register_account_et.getText().toString(); 37 | String realName=realName_et.getText().toString(); 38 | 39 | if(!register_password.equals(password_again)){ 40 | Toast.makeText(RegisterActivity.this,"两次输入的密码不一致,请重新输入!",Toast.LENGTH_LONG).show(); 41 | } 42 | else if(register_account.isEmpty()||register_account.length()!=11){ 43 | Toast.makeText(RegisterActivity.this,"输入手机号不合法,请重新输入!",Toast.LENGTH_LONG).show(); 44 | }else if(realName.isEmpty()){ 45 | Toast.makeText(RegisterActivity.this,"请输入您的真实姓名!",Toast.LENGTH_LONG).show(); 46 | }else{ 47 | User user=new User(); 48 | user.setAccount(register_account); 49 | user.setPassword(password_again); 50 | user.setRealName(realName); 51 | 52 | user.save(RegisterActivity.this,new SaveListener() { 53 | @Override 54 | public void onSuccess() { 55 | Toast.makeText(RegisterActivity.this,"注册成功,请返回登录!",Toast.LENGTH_LONG).show(); 56 | } 57 | 58 | @Override 59 | public void onFailure(int i, String s) { 60 | Toast.makeText(RegisterActivity.this,"注册失败,请重试!",Toast.LENGTH_LONG).show(); 61 | } 62 | }); 63 | } 64 | 65 | 66 | 67 | 68 | 69 | } 70 | 71 | public void register_quit_btn(View view){ 72 | finish(); 73 | } 74 | 75 | 76 | 77 | 78 | } 79 | -------------------------------------------------------------------------------- /app/src/main/java/com/jkxqj/qiandao/model/QianDao.java: -------------------------------------------------------------------------------- 1 | package com.jkxqj.qiandao.model; 2 | 3 | import cn.bmob.v3.BmobObject; 4 | 5 | /** 6 | * Created by JKXQJ on 2015/8/1. 7 | */ 8 | public class QianDao extends BmobObject { 9 | 10 | private String id; 11 | private String account; 12 | private String realName; 13 | private String IP; 14 | private String MAC; 15 | private String DaoTime; 16 | 17 | public String getId() { 18 | return id; 19 | } 20 | 21 | public void setId(String id) { 22 | this.id = id; 23 | } 24 | 25 | public String getAccount() { 26 | return account; 27 | } 28 | 29 | public void setAccount(String account) { 30 | this.account = account; 31 | } 32 | 33 | public String getRealName() { 34 | return realName; 35 | } 36 | 37 | public void setRealName(String realName) { 38 | this.realName = realName; 39 | } 40 | 41 | public String getIP() { 42 | return IP; 43 | } 44 | 45 | public void setIP(String IP) { 46 | this.IP = IP; 47 | } 48 | 49 | public String getMAC() { 50 | return MAC; 51 | } 52 | 53 | public void setMAC(String MAC) { 54 | this.MAC = MAC; 55 | } 56 | 57 | public String getDaoTime() { 58 | return DaoTime; 59 | } 60 | 61 | public void setDaoTime(String daoTime) { 62 | DaoTime = daoTime; 63 | } 64 | 65 | 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/jkxqj/qiandao/model/QianTui.java: -------------------------------------------------------------------------------- 1 | package com.jkxqj.qiandao.model; 2 | 3 | import cn.bmob.v3.BmobObject; 4 | 5 | /** 6 | * Created by JKXQJ on 2015/8/1. 7 | */ 8 | public class QianTui extends BmobObject { 9 | private String id; 10 | private String account; 11 | private String realName; 12 | private String IP; 13 | private String MAC; 14 | private String TuiTime; 15 | 16 | public String getId() { 17 | return id; 18 | } 19 | 20 | public void setId(String id) { 21 | this.id = id; 22 | } 23 | 24 | public String getAccount() { 25 | return account; 26 | } 27 | 28 | public void setAccount(String account) { 29 | this.account = account; 30 | } 31 | 32 | public String getRealName() { 33 | return realName; 34 | } 35 | 36 | public void setRealName(String realName) { 37 | this.realName = realName; 38 | } 39 | 40 | public String getIP() { 41 | return IP; 42 | } 43 | 44 | public void setIP(String IP) { 45 | this.IP = IP; 46 | } 47 | 48 | public String getMAC() { 49 | return MAC; 50 | } 51 | 52 | public void setMAC(String MAC) { 53 | this.MAC = MAC; 54 | } 55 | 56 | public String getTuiTime() { 57 | return TuiTime; 58 | } 59 | 60 | public void setTuiTime(String tuiTime) { 61 | TuiTime = tuiTime; 62 | } 63 | 64 | 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/com/jkxqj/qiandao/model/User.java: -------------------------------------------------------------------------------- 1 | package com.jkxqj.qiandao.model; 2 | 3 | import cn.bmob.v3.BmobObject; 4 | 5 | /** 6 | * Created by JKXQJ on 2015/8/1. 7 | */ 8 | public class User extends BmobObject { 9 | private String account; 10 | private String password; 11 | private String realName; 12 | 13 | public String getAccount() { 14 | return account; 15 | } 16 | 17 | public void setAccount(String account) { 18 | this.account = account; 19 | } 20 | 21 | public String getPassword() { 22 | return password; 23 | } 24 | 25 | public void setPassword(String password) { 26 | this.password = password; 27 | } 28 | 29 | public String getRealName() { 30 | return realName; 31 | } 32 | 33 | public void setRealName(String realName) { 34 | this.realName = realName; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkxqj/BianQian/7ad9f24d628bfaea28276a28c52d99aada6cb0cd/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkxqj/BianQian/7ad9f24d628bfaea28276a28c52d99aada6cb0cd/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkxqj/BianQian/7ad9f24d628bfaea28276a28c52d99aada6cb0cd/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkxqj/BianQian/7ad9f24d628bfaea28276a28c52d99aada6cb0cd/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_login.xml: -------------------------------------------------------------------------------- 1 | 8 | 14 | 22 | 23 | 31 | 32 |