0

我有一个用于查找当前位置的代码。然后我在代码中初始化 TextToSpeech。但我无法将当前位置文本转换为语音。如何在 TextToSpeech 中插入我当前位置的纬度、经度。

我的代码:

public class SpeakActivity extends Activity implements OnInitListener{
         private TextToSpeech tts;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_speak);   

        LocationManager locationManager; 
        String context = Context.LOCATION_SERVICE; 
        locationManager = (LocationManager)getSystemService(context); 

        Criteria crta = new Criteria(); 
        crta.setAccuracy(Criteria.ACCURACY_FINE); 
        crta.setAltitudeRequired(false); 
        crta.setBearingRequired(false); 
        crta.setCostAllowed(true); 
        crta.setPowerRequirement(Criteria.POWER_LOW); 
        String provider = locationManager.getBestProvider(crta, true); 

         //String provider = LocationManager.GPS_PROVIDER; 
        Location location = locationManager.getLastKnownLocation(provider); 
        updateWithNewLocation(location);

        tts = new TextToSpeech(this, this);


    }

    public void say(String text2say){

              tts.speak(text2say, TextToSpeech.QUEUE_FLUSH, null);

            }

    @Override

       public void onInit(int status) {

          say("latLongString");    

       }



       @Override

       public void onDestroy() {

          if (tts!= null) {

             tts.stop();

             tts.shutdown();

          }   

          super.onDestroy();

       }



    private void updateWithNewLocation(Location location) { 
        String latLongString;
        TextView myLocation; 
        myLocation = (TextView) findViewById(R.id.myLocation);



        if(location!=null) { 
        double lat = location.getLatitude(); 
        double lon = location.getLongitude(); 
        latLongString = "Lat:" + lat + "\nLong:" + lon;     

        }else{
            latLongString="no location found";
        }
        myLocation.setText("Your current position is:\n" + latLongString);
        say(latLongString);

    }
4

0 回答 0