2014-03-13 120 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