gps

2013-02-09 2 views
0

센서 값을 기반으로 SMS를 보낼 수 없습니다. 센서 조건에 따라 SMS를 보낼 앱을 개발 중입니다.gps

Sms는 gps 위치와 센서 값으로 구성됩니다.

에뮬레이터에서 gps 값을 null로 설정하면 휴대 전화로 시도 할 때 오류가 발생합니다. 여기

내 코드입니다 (응용 프로그램처럼 정지) : 나는 내 위치 값을 저장하기 위해 공용 변수를 만들어 내가했던 것과 같은 문제를했고 보내는 SMS에 그 변수를 사용

public class MainActivity extends Activity implements SensorEventListener , LocationListener { 

    private SensorManager sensorManager; 
    TextView xCoor; // declare X axis object 
    TextView yCoor; // declare Y axis object 
    TextView zCoor; // declare Z axis object 
    TextView aCoor; 
    public static float x; 
    public static float y; 
    public static float z; 
    String theftreport; 
    String Text; 



@Override 
    public void onCreate(Bundle savedInstanceState) 
{ 

    //for sensor 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    xCoor=(TextView)findViewById(R.id.xcoor); // create X axis object 
    yCoor=(TextView)findViewById(R.id.ycoor); // create Y axis object 
    zCoor=(TextView)findViewById(R.id.zcoor); // create Z axis object 

    sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE); 
     sensorManager.registerListener(this,sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_FASTEST); 

    //for gps 
    // super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    LocationListener mlocListener = new MainActivity(); 
    mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 


@Override 
    public void onAccuracyChanged(Sensor sensor, int accuracy) { } 

@Override 
public void onLocationChanged(Location loc) { 
loc.getLatitude(); 
    loc.getLongitude(); 

    Text = "My current location is: " +"Latitud =" + 
      " " + loc.getLatitude() +"Longitud = " + loc.getLongitude(); 

    // Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show(); 


} 

@Override 
public void onSensorChanged(SensorEvent event){ 

    // check sensor type 
    if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){ 
    // assign direction 

     x=event.values[0]; 
     y=event.values[1]; 
     z=event.values[2]; 
     xCoor.setText("X: "+x); 
     yCoor.setText("Y: "+y); 
     zCoor.setText("Z: "+z); 



     if(x>=5) 
     { 

     theftreport=Text.toString() + "Crash rate : " + x; 

     SmsManager smsManager = SmsManager.getDefault(); 
     smsManager.sendTextMessage("900XXXXXXX", null, theftreport, null,null);              


     Toast.makeText(MainActivity.this, "message sent", Toast.LENGTH_LONG).show(); 

     } 
             } 

} 


@Override 
public void onProviderDisabled(String provider) { 
    Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show(); 
} 


@Override 
public void onProviderEnabled(String provider) { 
    Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show(); 

} 


@Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 
    // TODO Auto-generated method stub 

} 
} 
+0

@SList 그의 질문에 그는 분명히 안드로이드 플랫폼에있는 앱을 개발한다고 말합니다. 이미 질문을 수정하려고 시도 했으므로 태그를 추가 할 수 있습니다. – Kanth

+0

매니페스트 파일에서 gps 사용 권한을 확인 했습니까? – nayab

+0

그래, 내가 그것을 검사 Nadosh하지만 여전히 가치로 0.0 받고 있어요. 당신은 지금 내가 작동하는 가치 측면에 토스트.하지만 SMS를 보낼 때 그것을 사용하여 값으로 0.0을 반환합니다 .. –

답변

0

함수를 호출하는 대신 클래스를 호출합니다. 유감스럽게도 나는 정확한 문제가 무엇인지 모르겠다. 일을하고 있었기 때문에 나는 다른 것을 시도하지 않았다.