用于交通应用的android gps应用程序

用于交通应用的android gps应用程序,android,gps,traffic,Android,Gps,Traffic,我目前已经完成了android开发的基础知识学习,正在尝试为我的交通系统项目学习在智能手机上制作android gps应用程序。在编写复杂代码方面还不是很好。请建议一些资源或教程,这将极大地帮助我使这个应用程序。 -一旦接近特定路段(可能有0.5公里长的道路),应用程序将每隔10秒通过短信发送gps位置(纬度、经度和时间) -如果手机经过特定路段,它将停止发送其位置为什么您要使用短信服务发送位置?尝试使用Web服务 要实现此应用程序,您必须使用LocationManager和LocationLi

我目前已经完成了android开发的基础知识学习,正在尝试为我的交通系统项目学习在智能手机上制作android gps应用程序。在编写复杂代码方面还不是很好。请建议一些资源或教程,这将极大地帮助我使这个应用程序。 -一旦接近特定路段(可能有0.5公里长的道路),应用程序将每隔10秒通过短信发送gps位置(纬度、经度和时间)
-如果手机经过特定路段,它将停止发送其位置

为什么您要使用短信服务发送位置?尝试使用Web服务

要实现此应用程序,您必须使用LocationManager和LocationListener库。 您可以从创建一个实现LocationListener的gps侦听类开始,如下所示

public class CTLocationListener implements LocationListener{




@Override
public void onLocationChanged(Location location) {
    Log.w("LOCATION CHANGED", ""+location);



    if(location != null) {

        Constants.LATTITUDE = location.getLatitude();
        Constants.LONGITUDE = location.getLongitude();
        Constants.kAccuracy = location.getAccuracy();
        Constants.ALTITUDE_VALUE = location.getAltitude();
    }


}

@Override
public void onProviderDisabled(String provider) {
    Log.i("PROVIDER", "DISABLED:"+provider);


}

@Override
public void onProviderEnabled(String provider) {
    Log.i("PROVIDER", "ENABLED:"+provider);

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    Log.i("EXTRAS", ""+extras);
    Log.i("Provider status", ""+status);
}
}

}
在这里,我将更新的位置存储在常量文件中。启动一个定期检查位置的调度程序,并开始发送与所需位置匹配的消息

要触发gps,您可以使用

LocationListener locationListener = new CTLocationListener(); 
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1.0f, locationListener);
您需要的调度程序是timertask。这可以实现为

public class showAccuracy extends TimerTask {

    @Override
    public void run() {

        ghandler.post(new Runnable() {

            @Override
            public void run() {
                if((Constants.Latitude == yourlatitude) && .....) {
} } }); }

}
公共类HomeActivity扩展活动实现LocationListener{
公共静态语境;
私人双纬度、经度;
公共场所经理;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
mContext=这个;
super.onCreate(savedInstanceState);
setContentView(R.layout.homelayout);
mLocManager=(LocationManager)getSystemService(Context.LOCATION\u服务);
mLocManager.RequestLocationUpdate(LocationManager.GPS_提供程序,0,0,
这),;
mLocManager.RequestLocationUpdate(LocationManager.NETWORK_提供程序,0,
0,这个);
位置更新();
((按钮)this.findviewbyd(R.id.ButtonHome))
.setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
startActivity(新意图)(HomeActivity.this、,
DefaultDisplay.class);
}
});
((按钮)此.findViewById(R.id.ButtonProfile))
.setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
if(GUIStatics.boolLoginStatus){
startActivity(新意图)(HomeActivity.this、,
MyProfile.class);
}否则{
意向意向=新意向(HomeActivity.this,
登录类);
意图。putExtra(“moveTo”、“MyProfile”);
星触觉(意向);
}
}
});
((按钮)this.findViewById(R.id.ButtonNotifications))
.setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
if(GUIStatics.boolLoginStatus){
startActivity(新意图)(HomeActivity.this、,
showallNotificationActivity.class));
}否则{
意向意向=新意向(HomeActivity.this,
登录类);
意图。putExtra(“移动到”、“显示所有通知活动”);
星触觉(意向);
}
}
});
((按钮)this.findViewById(R.id.ButtonFavorites))
.setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
if(GUIStatics.boolLoginStatus){
startActivity(新意图)(HomeActivity.this、,
FavoritesActivity.class));
}否则{
意向意向=新意向(HomeActivity.this,
登录类);
意向。putExtra(“移动到”、“偏好活动”);
星触觉(意向);
}
}
});
((按钮)this.findviewbyd(R.id.ButtonMore))
.setOnClickListener(新的OnClickListener(){
公共void onClick(视图arg0){
startActivity(新意图)(HomeActivity.this、,
MoreListActivity.class);
}
});
}
公共无效位置更新()
{
CellLocation.requestLocationUpdate();
}
公共地址(双lat,双lng){
Geocoder Geocoder=新的Geocoder(HomeActivity.mContext,Locale.getDefault());
试一试{
列表
http://code.google.com/p/open-gpstracker/
http://www.devx.com/wireless/Article/43005


我希望这对您非常有用。

感谢DynamicMind…我将花时间理解、研究和实现您提供的代码…非常感谢您的帮助和链接。我更新了我的问题,请参阅-感谢dsc的帮助-我的项目是一个实用的系统,这意味着它以低成本系统获取信息为目标。在我的位置上,sms是比网络便宜得多。我会花时间看看你提供的代码。衷心感谢回复HI dsc,我想我真的需要使用网络服务。你有其他资源我可以使用吗。(我不能投票支持缺乏声誉)多谢各位much@coollearner-您使用的是哪种Web服务?尝试发布不同的问题嗨,我已更新了我的问题,请参阅-