- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个布局中只有一个编辑文本和按钮的应用程序
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:inputType="phone" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/editText1"
android:layout_below="@+id/editText1"
android:text="Dial" />
</RelativeLayout>
和一个 MainActivity
扩展 Activity
并做
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText editText1 = (EditText) findViewById(R.id.editText1);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String strNumber = editText1.getText().toString();
if (!strNumber.equals(""))
{
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + strNumber));
startActivity(intent);
}
}
});
}
对于不以“08...”开头的号码,它会按预期调用该号码。对于以“08...”开头的号码,它会调出拨号器并改为填写号码。我怎样才能阻止这个?它似乎不是手机上的设置,至少据我所知不是,但我在 4.3 模拟器上测试了它并且它按预期工作。我没有另一部 4.3 手机来测试它。我的 4.2.2 HTC One 按预期拨号,我所有的旧测试设备也是如此。
我可以直接调用 0800 号码,或者在应用程序启动拨号器后按下通话按钮,这样它们就不会被完全阻止,而且我在手机中没有 sim 卡的情况下也能得到同样的效果,所以这不是
预计到达时间:我可以通过在 08 号码前加上“,”来解决这个问题,这会在拨号前造成轻微的停顿,但除此之外还能正常工作。不过,这并不能真正解释为什么会这样。
最佳答案
我没有4.3手机做测试。但是,我看了一下 OutgoingCallBroadcaster 的源代码,其作用描述如下:
OutgoingCallBroadcaster receives CALL and CALL_PRIVILEGED Intents, and broadcasts the ACTION_NEW_OUTGOING_CALL intent which allows other applications to monitor, redirect, or prevent the outgoing call.
它的processIntent(Intent i) 方法包含一个 fragment (大约在第 493 行),如果数字被视为“潜在紧急情况”,则将 intent 的操作更改为 ACTION_DIAL。
总而言之,Android 有一个使用拨号盘拦截 ACTION_CALL 的策略。不过,不太清楚为什么会发生这种情况。
关于android - ACTION_CALL 在 Nexus/Android 4.3 上作为 ACTION_DIAL 用于以 08 开头的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19244929/
我想通过单击菜单中的按钮来调用电话。该操作有效,但不正确,因为当我单击按钮时会启动一个空白页面,当我单击后退按钮时,调用会开始!我没有找到错误,你能帮我吗? 这是我的代码: /*Fare una te
正在开发我想要 Intent.ACTION_DIAL 的功能。以下是我到目前为止尝试过的代码。 Intent callIntent = new Intent(Intent.ACTION_DIA
这个问题在这里已经有了答案: Android permission doesn't work even if I have declared it (11 个答案) 关闭 7 年前。 出于某种原因,
我需要在我的应用程序中调用后台,所以当用户点击一个按钮时,它应该开始在后台调用,用户会知道他正在调用,但他不会看到拨号器,他会看到应用程序, 在通话时重现声音。 所以基本上我想要的是在不退出 Acti
在我的 Android应用程序我想在用户单击按钮时自动调用电话。我已经使用下面的一组代码来实现这个功能 Intent intent = new Intent(Intent.ACTION_CALL);
我正在尝试使用 Intent.Action 类。我知道如何使用 ACTION_VIEW 来显示 URL,但我想在应用程序启动时使用 Intent.ACTION_DIAL 来调用号码。文档说您需要将 U
我正在为我的应用程序使用 Action_call,它在我的模拟器中工作正常,当我在我的手机中运行相同的代码时它不工作并且它没有打开拨号盘我也在 list 中获得了许可,但没有用。这是代码 button
我想从我的 Activity 调用调用操作,但在调用操作完成后,我的应用程序停留在调用日志屏幕上。为了避免这种情况,我决定从 PhoneStateListener 开始我的 Activity ,我这样
我正在使用 Intent intent = new Intent(Intent.ACTION_CALL); 从我的应用程序进行调用。 有没有办法在一段时间后终止通话?或者在开始之前为 ACTION_C
当 ACTION_CALL 返回结果时,我如何检查它是否建立了连接?我想排除用户取消通话的情况。 最佳答案 据我所知你不能。您唯一可以知道的是通话状态,例如 CALL_STATE_IDLE、CALL_
我试图通过单击按钮提供两个号码的选项以直接调用号码,但是当我选择其中一个号码时,它将进入拨号器屏幕,但“Ljava.lang.CharSequence "写在那里,弹出一个不支持消息服务的对话框。 这
我尝试调用电话号码 03012345,1234,#31#,98765(带有 FRITZ!Box 的调用) “03012345”是 FRITZ!Box 的电话号码,“,”是拨号暂停,“#31#”是向被叫
有没有一种方法可以从我的应用程序中调用电话,同时让我的 Activity 保持专注? ACTION_CALL 显示通话屏幕,但我想显示我的屏幕,用我自己的控件结束通话。这可能吗?例如有没有实际打电话的
我创建了一个默认拨号器应用,但 ACTION_CALL Intent 在某些设备上不起作用。 除非我将我的应用程序设置为默认手机应用程序,否则 ACTION_CALL Intent 效果很好。但是,如
我正在开发一个 Android 应用程序,其中有紧急号码调用功能。我正在使用下面的调用代码: private void call(String pnum) { private Telephon
我想调用*142# 然而,它只拨*142,#被忽略。 这是我的代码 Button button = (Button) findViewById(R.id.balance); myButton.setO
我有一个简单的测试用例,用于测试是否在单击按钮时启动拨出电话。 public void testCalling(){ IntentFilter callFilter = new IntentF
我在执行 Intent.ACTION_CALL 操作时得到 ActivityNotFoundException。我找到了很多链接,但所有链接都无法解决我的问题。 它有时会给我异常 android.co
我有一个关于 Intent 操作 ACTION_CALL 的问题。 用户结束通话后回到自己的应用程序/Activity 的正确方法是什么? Intent intent = new Intent(Int
我收到推送通知,正在调用前台服务。 从服务中,我正在调用一个 Activity。 在这里,我有 2 个功能。 1。紧急声音报警 2。使用 ACTION_CALL 调用。 如果设备已解锁,两者都可以正常
我是一名优秀的程序员,十分优秀!