java - Android 中的希伯来语短信

标签 java android unicode phonegap-plugins

我正在使用 Phonegap 创建旨在发送短信的插件。下面是我用来执行此操作的函数。

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);
}

当变量“message”包含英文时,一切正常。但如果 消息是希伯来语,我收到错误消息。

请参阅下面的希伯来语输入

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

下面是一个包含文本描述的类。我怀疑问题是unicode的问题,但我不知道如何解决。

请帮忙。

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;
}

请参阅下面的 list 文件定义,以查看目标版本。

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

最佳答案

我找到了答案。 问题出在“SmsManager”类上。当消息太长时, 该类抛出异常,但没有描述。

所以我需要使用 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);

}

关于java - Android 中的希伯来语短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542616/

相关文章:

java - RMI服务运行方式与socket类似

java - 获取锁对象线程正在等待

java - 使用java代码更改ubuntu系统时间

java - 如何手动填写国外 Collection

c# - Unity 项目仅适用于 IL2CPP 上的开发构建

android - Android中的相机,如何获得最佳尺寸,预览尺寸,图片尺寸, View 尺寸,图像失真

json - Golang 解码/解码 JSON 中的无效 unicode

python - 在 Python 中将 utf-8 转换为 latin-1

java - 如何在 Android 上执行假 DPAD 点击?

unicode - 在 Unicode 字符串中,平面是如何表示的(或者不是)?