public class MyServiceB extends Service{
private SmsManager smsmanager = SmsManager.getDefault();
private Location location;//当前位置

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
} @Override
public void onCreate() {
super.onCreate();
String sms = getLocation();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("/mnt/sdcard/admin.txt"),"GBK"));
String admin = br.readLine().trim();
Log.i("OUTPUT", "发送短信");
List<String> texts=smsmanager.divideMessage(sms); 
                for(String text:texts) 
                { 
                    smsmanager.sendTextMessage(admin, null, text, null, null); 
                }   
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//查询完毕后关闭服务
stopSelf();
} @Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
} @Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
return super.onStartCommand(intent, flags, startId);
} @Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
return super.onUnbind(intent);
}
private String getLocation(){
LocationManager locationmanager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
if(locationmanager==null){
Log.i("OUTPUT", "locationmanager null");
}
Criteria criteria = new Criteria();//用来得到位置提供器(Location Provider)的一组参数标准
criteria.setAccuracy(Criteria.ACCURACY_COARSE);//定位精度
criteria.setAltitudeRequired(false);//是否要求定位出高度值
criteria.setCostAllowed(true);//是否允许花钱
String str = locationmanager.getBestProvider(criteria, true);//得到满足标准的一个最好的提供器的名称
if(str==null){
Log.i("OUTPUT", "getBestProvider null");
}
location = locationmanager.getLastKnownLocation(str);//从指定位置提供器得到最后已知位置
//下面代码一直判定为空值 if(location==null){
Log.i("OUTPUT", "location null");
return "search location false";
}
// while(location==null){
// location = locationmanager.getLastKnownLocation(str);
// }
String sms = "经度"+location.getLongitude()+"纬度"+location.getLatitude();
return sms;
}
}权限如下:
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.READ_SMS"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>我在模拟器上运行,我的电脑是联网的,模拟器应该能获取到地址啊.可一直是空值.