2011-10-30 14 views
5

मेरे पास एक ऐसा एप्लिकेशन है जिसमें मुझे अपने स्थान (देशांतर और अक्षांश) को अन्य व्यक्तियों से एसएमएस प्राप्त करने की आवश्यकता होती है। मैं किसी भी तरह अपना स्थान (देशांतर और अक्षांश) प्राप्त करूंगा और इसे उत्तर एसएमएस में एक पाठ के रूप में रखूंगा और फिर इसे दूसरे व्यक्ति को भेजें। लेकिन अब मुझे एक समस्या का सामना करना पड़ रहा है कि मेरा स्थान कैसे प्राप्त करें और इसे उत्तर एसएमएस में एक पाठ के रूप में रखें। अब तक मैंने एक कोड लिखा है जो दूसरे से एसएमएस प्राप्त करने पर एक उत्तर संदेश भेजता है व्यक्ति। क्या कोई मुझे बता सकता है कि मेरा स्थान कैसे प्राप्त करें और इसे टेक्स्ट संदेश के रूप में कैसे रखा जाए?अन्य व्यक्ति को उत्तर एसएमएस के रूप में अपना स्थान (देशांतर और अक्षांश) कैसे भेजें?

यहाँ मेरी कोड जबाब संदेश भेजने के लिए है:

सार्वजनिक शून्य onReceive (संदर्भ संदर्भ, आशय आशय) {

Intent m=new Intent(context, ReceivelocationActivity.class);  
     PendingIntent pi=PendingIntent.getBroadcast(context, 0, m, 0); 
    Bundle bundle = intent.getExtras();   
    SmsMessage[] msgs = null; 
    String str = ""; 
    String str2=""; 
    String str3=""; 
    String autoReplyToken = "Request_Accepted"; 
    if (bundle != null) 
    { 
     //---retrieve the SMS message received--- 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     msgs = new SmsMessage[pdus.length];    
     for (int i=0; i<msgs.length; i++){ 
      msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     
      str += "SMS from " + msgs[i].getOriginatingAddress();      
      str2=msgs[i].getOriginatingAddress(); 
      str += " :"; 
      str += msgs[i].getMessageBody().toString(); 
     str3=msgs[i].getMessageBody().toString(); 
      str += "\n";   
     } 
     //---display the new SMS message--- 
     Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); 

     SmsManager sms = SmsManager.getDefault(); 
     boolean isAutoReply = str3.startsWith(autoReplyToken); 
     /* As suggested by Dan J */ 
Criteria hdCrit = new Criteria(); 
hdCrit.setAccuracy(Criteria.ACCURACY_COARSE); 
hdCrit.setAltitudeRequired(false); 
hdCrit.setBearingRequired(false); 
hdCrit.setCostAllowed(true); 
hdCrit.setPowerRequirement(Criteria.POWER_LOW); 

hdLocMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

hdLocProvider = hdLocMgr.getBestProvider(hdCrit, true); 

Location location = hdLocMgr.getLastKnownLocation(hdLocProvider); 

Double dlat = location.getLatitude(); 
Double dlon = location.getLongitude(); 

     String msg = dlat + "," + dlon ; 
/* As suggested by Dan J */ 
     if (!isAutoReply) { 
      String autoReplyText = autoReplyToken + msg; 
      sms.sendTextMessage(str2, null, autoReplyText, pi, null); 
     } 

    }     
} 

किसी को मुझे बताओ कि बजाय "संदेश" चर में वास्तविक स्थान भेजने के लिए कर सकते हैं स्ट्रिंग "स्थान" का। किसी भी विचार के साथ कृपया मुझे बताएं? अग्रिम में धन्यवाद।

+0

यहां तक ​​कि मैं इस प्रश्न का उत्तर जानना चाहता हूं, चलिए देखते हैं कि वहां कोई और अनुभवी है जो बचाव के लिए आ सकता है। –

+1

क्या आपने यह पता लगाया है कि अभी तक स्थान कैसे प्राप्त करें? इसके बाद आप स्थान ऑब्जेक्ट से प्राप्त संख्याओं में बस जा सकते हैं http://developer.android.com/guide/topics/location/obtaining-user-location.html –

+0

मैंने इसे दान जे द्वारा सुझाए गए अनुसार उचित बना दिया मेरे कोड में जोड़ों लेकिन अब यह संकलन भी नहीं कर रहा है। अगर आपको पता है कि क्या कब्र जा रहा है तो कृपया मुझे सुझाव दें? –

उत्तर

4

कैसे देशांतर और अक्षांश पाने के लिए this answer देखें:

तो बस बदल

String msg = "location" ; 

को
String msg = dlat + ", " + dlon; 

आप भी अपनी प्रकट करने के लिए उपयुक्त अनुमतियों जोड़ने की आवश्यकता होगी एक्सएमएल (उदाहरण के लिए मेरा उत्तर here देखें)।

+0

मैंने अपने मौजूदा कोड में कोड का टुकड़ा जोड़ा है, आप इसे टिप्पणियों में देख सकते हैं/* जैसा कि दान जे * द्वारा सुझाया गया है, लेकिन यह संकलन नहीं कर रहा है। यह इस लाइन पर त्रुटि दिखा रहा है hdLocMgr = (LocationManager) getSystemService (संदर्भ। स्थान सेवा); यह कह रहा है कि विधि विधि प्राप्त करें सिस्टम सिस्टम()। क्या मैं यहाँ कुछ भी गलत कर रहा हूँ। कृपया मुझे सही करें जहां मैं गलत हूं? अग्रिम में धन्यवाद। –

+0

इसके बजाय context.getSystemService() को कॉल करने का प्रयास करें। संकलन त्रुटियों को हल करना बहुत आसान होना चाहिए - यदि संकलक विधि नहीं ढूंढ पा रहा है, तो आपको यह पता लगाना होगा कि ऑब्जेक्ट उस विधि को प्रदान करता है (केवल Google इसे), और उस ऑब्जेक्ट पर विधि को कॉल करें। http://developer.android.com/reference/android/content/Context.html –

संबंधित मुद्दे