2012-11-24 26 views
5

मैं एसएमएस भेजने के उद्देश्य से प्लगइन बनाने के लिए फोनगैप का उपयोग कर रहा हूं। नीचे वह कार्य है जिसे मैं करने के लिए उपयोग करता हूं।एंड्रॉइड में हिब्रू एसएमएस

private void sendSMS(String phoneNumber, String message) { 
    // Activity currentActivity = (Activity)this.ctx; 
    SmsManager manager = SmsManager.getDefault(); 
    PendingIntent sentIntent = PendingIntent.getActivity(cordova.getContext(), 0, new Intent(), 0); 
    manager.sendTextMessage(phoneNumber, null, message, sentIntent, null); 
} 

जब परिवर्तनीय "संदेश" में अंग्रेजी होती है, तो सब कुछ ठीक काम करता है। लेकिन अगर संदेश हिब्रू में है, तो मुझे एक त्रुटि मिलती है।

इनपुट नीचे देखें हिब्रू में

סך הלכל מוזמן 2 פריטים סלט פיצוצ בסרי שווה ל 10.3 כמות 1 סלט שרימפס שווה ל 8.15 כמות 2 סך הכל חשבון 26.6 שקלים

नीचे एक वर्ग है कि पाठ विवरण रखता है। मुझे संदेह है कि समस्या यूनिकोड के साथ समस्या है, लेकिन मुझे नहीं पता कि इसे कैसे ठीक किया जाए।

कृपया मदद करें।

public class MenuEntry { 
    public String getPid() { 
    return pid; 
    } 
    public void setPid(String pid) { 
    this.pid = pid; 
    } 
    public String getTitle() { 
    return title; 
    } 
    public void setTitle(String title) { 
    this.title = title; 
    } 
    public String getDescription() { 
    return description; 
    } 
    public void setDescription(String description) { 
    this.description = description; 
    } 
    public double getPrice() { 
    return price; 
    } 
    public void setPrice(double price) { 
    this.price = price; 
    } 
    public String getCategoryName() { 
    return categoryName; 
    } 
    public void setCategoryName(String categoryName) { 
    this.categoryName = categoryName; 
    } 
    public MenuEntry() { 
    super(); 
    this.pid = ""; 
    } 
    public String GetPriceAndDescription(int unit) { 
    StringBuilder result = new StringBuilder(); 
    result.append(this.getTitle()); 
    result.append(" שווה ל "); 
    result.append(this.getPrice()); 
    result.append(" כמות "); 
    result.append(unit); 
    result.append("\n"); 
    return result.toString(); 
    } 
    public String GetPriceAndDescription() { 
    StringBuilder result = new StringBuilder(); 
    result.append(this.getTitle()); 
    result.append(" שווה ל "); 
    result.append(this.getPrice()); 
    result.append("\n"); 
    return result.toString(); 
    } 
    public MenuEntry(String pid, String title, String description, double price, String categoryName) { 
    super(); 
    this.pid = pid; 
    this.title = title; 
    this.description = description; 
    this.price = price; 
    this.categoryName = categoryName; 
    } 
    private String pid; 
    private String title; 
    private String description; 
    private double price; 
    private String categoryName; 
} 

लक्ष्य संस्करण देखने के लिए, मेनिफेस्ट फ़ाइल की परिभाषा के नीचे देखें।

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="15" /> 
+0

"मुझे एक त्रुटि प्राप्त होती है।" आपके लिए मेरी वर्तमान सलाह के रूप में उपयोगी जानकारी है: "फिर इसे ठीक करें"। –

+0

आपको क्या त्रुटि मिल रही है? आप किस एंड्रॉइड संस्करण पर परीक्षण कर रहे हैं? –

+1

जावा स्ट्रिंग्स के अंदर हिब्रू के लिए दोनों संपादक को सही करने के लिए और javac compiler को उसी एन्कोडिंग ('javac -encoding utf') में परिचालन करना होगा या यूनिकोड escapes '\ u05d0' (aleph) का उपयोग करना होगा। (संभवतः आपने वहां मिटा दिया है।) –

उत्तर

1

मुझे जवाब मिला। समस्या "एसएमएस प्रबंधक" वर्ग के साथ थी। जब संदेश बहुत लंबा होता है, कक्षा अपवाद फेंकता है, लेकिन विवरण के बिना।

इसलिए मुझे SmsManager क्लास की अन्य विधि "sendMultipartTextMessage" का उपयोग करने की आवश्यकता है।

private void sendSMS(String phoneNumber, String message) { 

     SmsManager manager = SmsManager.getDefault(); 

     ArrayList<String> parts = manager.divideMessage(message); 

     manager.sendMultipartTextMessage(phoneNumber, null, parts, null, null); 

} 

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

  • कोई संबंधित समस्या नहीं^_^