Android拨号程序

ing*_*abh 31 android phone-call

我正在找出一种方法来替换我的自定义拨号器应用程序中的默认拨号器应用程序,但我没有得到如何实现这一点.

这就是我想要的

  • 创建自定义拨号器UI
  • 每当按下呼叫按钮硬件或Android中的硬件时,都会调用我的应用程序
  • 也可以从联系人屏幕调用该应用程序

我指的是public static final String ACTION_DIAL.

zir*_*ael 47

  1. 创建一个简单的Android应用程序(我们的拨号器).要实际呼叫某人,您只需要该方法:

    private void performDial(String numberString) {
        if (!numberString.equals("")) {
           Uri number = Uri.parse("tel:" + numberString);
           Intent dial = new Intent(Intent.ACTION_CALL, number);
           startActivity(dial);
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 授予您的应用程序在AndroidManifest中调用的权限

    <uses-permission android:name="android.permission.CALL_PHONE" />
    
    Run Code Online (Sandbox Code Playgroud)
  3. 设置AndroidManifest意图,当您需要拨号器时,可以在手机上使用您的应用

当有人按下通话按钮时:

    <intent-filter>
        <action android:name="android.intent.action.CALL_BUTTON" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
Run Code Online (Sandbox Code Playgroud)

当有人触发URI时:

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <action android:name="android.intent.action.DIAL" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="tel" />
    </intent-filter>
Run Code Online (Sandbox Code Playgroud)

  • 如果您的手机ui(即htc sense)启动自己的拨号器而不是消防拨号器活动,那么您真的无能为力...... (3认同)

Asa*_*ssi 7

这对我有用:

        <activity
        android:name=".activities.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <!-- open activity when establishing a call -->
        <intent-filter>
            <action android:name="android.intent.action.CALL_PRIVILEGED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="tel" />
        </intent-filter>

    </activity>
Run Code Online (Sandbox Code Playgroud)