2014-03-13 123 views
0

我正在尝试为我的应用程序定制的传入和传出呼叫屏幕。都是关于同一个屏幕,并根据从广播接收到的状态更改按钮。在Android中发起呼叫

我能够正确接收来电但拨打电话时打开我的联系人,然后单击号码我的自定义屏幕打开但我没有看到它打电话。

我试过如下:

 String uri = "tel:" + incomingnumber.trim(); 
     Intent intent = new Intent(Intent.ACTION_CALL); 
     intent.setData(Uri.parse(uri)); 
     startActivity(intent); 

这只是使从默认的电话拨号呼叫,并没有显示我的屏幕。

这里是我的清单文件:

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> 
<uses-permission android:name="android.permission.CALL_PRIVILEGED" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar" > 
    <activity 
     android:name="com.honey.ringer.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.honey.ringer.AcceptCall" 
     android:priority="999" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" > 
     <intent-filter> 
      <action android:name="android.intent.action.ANSWER" /> 
      <action android:name="android.intent.action.DEFAULT" /> 
      <action android:name="android.intent.action.CALL_PRIVILEGED" /> 

      <data android:scheme="tel" /> 
     </intent-filter> 
    </activity> 

    <receiver 
     android:name="com.honey.ringer.PhoneListenerBroad" 
     android:priority="999" > 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE" /> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
     </intent-filter> 
    </receiver> 
</application> 

有人可以帮我解决呼出的一部分?我想通过电话接通我的定制屏幕?

非常感谢!

回答

0

您还没有定义在AndroidManifest.xml中CALL_PHONE许可文件

你的表现应该像这

<uses-permission android:name="android.permission.CALL_PHONE" /> <!-- permission added!--> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.NoTitleBar" > 
    <activity 
     android:name="com.honey.ringer.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.honey.ringer.AcceptCall" 
     android:priority="999" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" > 
     <intent-filter> 
      <action android:name="android.intent.action.ANSWER" /> 
      <action android:name="android.intent.action.DEFAULT" /> 
      <action android:name="android.intent.action.CALL_PRIVILEGED" /> 

      <data android:scheme="tel" /> 
     </intent-filter> 
    </activity> 

    <receiver 
     android:name="com.honey.ringer.PhoneListenerBroad" 
     android:priority="999" > 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE" /> 
      <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> 
     </intent-filter> 
    </receiver> 
</application> 
+0

它不工作!即使在权限之后。 – TheDevMan