从数据库中的数字进行动作调用

时间:2017-11-25 03:49:45

标签: android phone-call

我创建了一个使用电话的应用程序但是我遇到了一个问题,当按钮点击没有发生任何事情时,我将数字保存在数据库中。 thisi是我的代码:

                final TextView txt_alamat = (TextView) dialog.findViewById(R.id.textView_alamat);
            txt_alamat.setText(listData.get(position).getno_telp());
            nomor = String.format("tel :", txt_alamat.getText().toString().trim());

            Button btn_call = (Button) dialog.findViewById(R.id.button_telpon);
            btn_call.setText(listData.get(position).getno_telp());
            btn_call.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent TelpIntent = new Intent(Intent.ACTION_CALL, Uri.parse(String.valueOf(Uri.parse("tel :"+nomor))));
                    TelpIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                    if (ActivityCompat.checkSelfPermission(Telp_guru_Activity.this,
                            android.Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                        return;
                    } else  {
                        Log.e(TAG,"error");
                    }
                    startActivity(TelpIntent);

                }
            });

2 个答案:

答案 0 :(得分:0)

  

这可能是因为你在" tel _:"中添加了一个空白区域。请删除并重试

startActivity(new Intent(Intent.ACTION_DIAL)
            .setData(Uri.parse("tel:" + nomor)));

答案 1 :(得分:0)

直接从DB传递号码。无需写,

nomor = String.format("tel :", txt_alamat.getText().toString().trim());

尝试在setData(),

中解析Uri
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + nomor));

if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
    return;
}
startActivity(callIntent);

确保您从DB获取电话号码。