如何用GPS找回丢失手机是所在位置
2012-07-01 16:24
381 查看
1.先看下布局的
2.活动的实现SIMTestActivity.java
4.需要用到的类有:PowerBoot.java调用这个类的时候是在手机卡被换掉是时候
5.需要用到的类有:SMSlistener.java 调用这个类的时候是在手机找不到的时候,会调用这个类
6.运行结果如下:
7.感觉这个程序是实用性不大,因为如果手机丢了,返回一个经纬度,虽然可以具体知道什么位置,但是,手机是否找到还真的不好说。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/tv" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
2.活动的实现SIMTestActivity.java
package com.wang; import android.app.Activity; import android.os.Bundle; import android.telephony.TelephonyManager; import android.widget.TextView; public class SIMTestActivity extends Activity { private TelephonyManager telephonyManager; private TextView textView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获得电话相关信息的系统服务 telephonyManager =(TelephonyManager)getSystemService(TELEPHONY_SERVICE); // 得到SIM卡的信息 String info=getInfo(telephonyManager); textView=(TextView)findViewById(R.id.tv); textView.setText(info); } public static String getInfo(TelephonyManager tm) { StringBuffer sb=new StringBuffer(); //获得SIM卡的当前状态 sb.append("SIM卡的当前状态是:"); if (tm.getSimState()==TelephonyManager.SIM_STATE_READY) { sb.append("正常").append("\n\n"); }else if (tm.getSimState()==TelephonyManager.SIM_STATE_ABSENT) { sb.append("N/A:没有SIM卡").append("\n\n"); } else { sb.append("N/A:SIM卡状态异常").append("\n\n"); } sb.append("SIM卡的编号:"); if (tm.getSimSerialNumber()!=null) { sb.append(tm.getSimSerialNumber()).append("\n\n"); } else { sb.append("N/A:获取失败").append("\n\n"); } //获得SIM卡运营商名称 sb.append("SIM卡运营商名称"); if (tm.getSimOperatorName().equals("")) { sb.append("N/A:获取失败").append("\n\n"); } else { sb.append(tm.getSimOperatorName()).append("\n\n"); } //获取SIM卡所属的国家 sb.append("SIM卡所属的国家:"); if (tm.getSimCountryIso().equals("")) { sb.append("N/A:获取失败").append("\n\n"); } else { sb.append(tm.getSimCountryIso()).append("\n\n"); } // 获得手机号码 sb.append("手机号码:"); if (tm.getLine1Number()!=null) { sb.append(tm.getLine1Number()).append("\n\n"); } else { sb.append("N/A:获取失败").append("\n\n"); } return sb.toString(); } }3.需要用到的类有Position.java
package com.wang; import java.security.KeyStore.LoadStoreParameter; import android.content.Context; import android.location.Criteria; import android.location.Location; import android.location.LocationManager; public class Position { private static LocationManager locationmanger; private static Location location; private static String relocationProvider; public static String getposition(Context context){ Context con = null; locationmanger=(LocationManager)con.getSystemService(con.LOCATION_SERVICE); location =getLocationProvider(locationmanger); if (location!=null) { StringBuffer buffer=new StringBuffer(); buffer.append("latitude:"); buffer.append(Double.toString(location.getLatitude())); buffer.append(",longitude:"); buffer.append(Double.toString(location.getLongitude())); return buffer.toString(); } else { return null; } } private static Location getLocationProvider(LocationManager locationmanger2) { Location reLocation=null; Criteria criteria=new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setBearingRequired(false); criteria.setPowerRequirement(Criteria.POWER_LOW); relocationProvider=locationmanger.getBestProvider(criteria, true); reLocation=locationmanger.getLastKnownLocation(relocationProvider); return reLocation; } }
4.需要用到的类有:PowerBoot.java调用这个类的时候是在手机卡被换掉是时候
package com.wang; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.TelephonyManager; import android.telephony.SmsManager; public class PowerBoot extends BroadcastReceiver { TelephonyManager telephonyManager; public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub final Context con=context; if (telephonyManager.getSimSerialNumber()!=null) { //预先设置好的SIM卡编码 if (telephonyManager.getSimSerialNumber()!="898607c3161047753733") { new Runnable() { public void run() { // TODO Auto-generated method stub String position=Position.getposition(con); SmsManager smsManager=SmsManager.getDefault(); //预先设置好自己的电话号码 smsManager.sendTextMessage("15290336267", null, "主人你丢失的手机所在的位置是:"+position, null, null); //smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent) } }.run(); } } } }
5.需要用到的类有:SMSlistener.java 调用这个类的时候是在手机找不到的时候,会调用这个类
package com.wang; import java.text.SimpleDateFormat; import java.util.Date; import com.wang.Position; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.SmsManager; import android.telephony.SmsMessage; public class SMSlistener extends BroadcastReceiver { private static String position; public void onReceive(Context context, Intent intent) { //这个方法一旦返回,android将回收BroadcastReceiver final Context con=context; Object[] pdus=(Object[])intent.getExtras().get("puds"); if (pdus!=null&&pdus.length>0) { SmsMessage [] messages=new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { byte[] pdu=(byte[])pdus[i]; messages[i]=SmsMessage.createFromPdu(pdu); } for (SmsMessage msg: messages) { final SmsMessage sms=msg; String content =msg.getMessageBody(); final String sender=msg.getOriginatingAddress(); if (content.startsWith(":getlocation")) { new Runnable() { public void run() { // TODO Auto-generated method stub position=Position.getposition(con); if (position!=null) { SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String sendcontent=format.format(new Date(sms.getTimestampMillis())+" 主人你的手机所在的位置是:"+position); SmsManager smsManager=SmsManager.getDefault(); //回复一条短信 smsManager.sendTextMessage(sender, null, sendcontent, null, null); } } }.run(); } } } } }
6.运行结果如下:
7.感觉这个程序是实用性不大,因为如果手机丢了,返回一个经纬度,虽然可以具体知道什么位置,但是,手机是否找到还真的不好说。
相关文章推荐
- OPPO手机丢失如何找回?
- [转]大话企业级Android应用开发实战 巧用GPS找回丢失的手机
- 囧,还可以这样玩,通过GPS实现定位手机号所在位置的系统
- iPhone6手机丢失关机了如何定位找回
- 手机升级系统如何找回丢失的文件
- GPS定位找回丢失的手机
- 三星手机丢失如何找回?
- Android中如何监听手机GPS打开状态
- WPF RichTextBox 如何滚动到光标所在位置、滚动条操作
- 如何使用USER.DB找回丢失QQ中的好友?
- 如何通过xenserver导出的SSR找回丢失的vm Metadata
- 如何恢复丢失Iphone系列手机内置资料
- 手机资料丢失如何恢复
- win7 桌面背景保存位置,告诉你源文件删除后如何找回
- 如何找出nginx配置文件的所在位置
- 2003登陆密码丢失如何找回???
- 手机的照片丢失了如何恢复数据呢
- 如何在Ubuntu手机中利用百度地图显示一个坐标位置
- Android 如何获取手机经纬度和地理位置信息
- 三星note4通讯录丢失如何找回