java - 如何解析 URI 中包含哈希符号的字符串

标签 java android android-intent

我在解析 URI 中包含“#”的字符串时遇到问题,我想打开设备拨号并将该字符串“*344*12*#”解析给它。 下面的代码是我的实现,问题是我在拨号中得到的字符串没有“#”。

    @Override
public void onBindViewHolder(@NonNull RecyclerAdapterDataView holder, int i) {

    final String code = list.get(i).getActivation();
    holder.activation.setText("Activation Code:  "+code);

    holder.activate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (code.contains("#")){
                Intent i = new Intent();
                i.setAction(Intent.ACTION_DIAL);
                i.setData(Uri.parse("tel:"+code));
                context.startActivity(i);
            }
        }
    });
}

最佳答案

尝试下面的代码可能会有所帮助

        if (code.contains("#")){
            Intent i = new Intent();
            i.setAction(Intent.ACTION_DIAL);
            i.setData(Uri.parse("tel:"+Uri.encode(code))); //here add Uri.encode
            context.startActivity(i);
        }

关于java - 如何解析 URI 中包含哈希符号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58776991/

相关文章:

java - 根据 Java 中的 Swagger 定义验证 JSON 消息

android-intent - 带有附加功能的 Android 通知意图始终为空

java - Android在不同的java包中启动 Activity

Android - 电话选择器 (HintRequest) 并未在所有设备中提供电话号码建议

Java Collections - 查找两个集合之间是否存在公共(public)元素的最快方法

java - Android:如何从工作线程到服务进行通信

java - (Android) 无法将数据插入SQLite数据库

android - 如何以编程方式将证书添加到信任库并将其用于验证服务器身份验证

java - 将数据库数据输出到 JTable

安卓 : views not appearing in toolbar