2012-04-25 53 views
0

我希望在用戶進行特定呼叫時激活我的應用程序。有沒有什麼方法可以在同一時間接收用戶撥打的信息(不是後綴),以便在正確的時間激活應用程序?如何訪問移動用戶呼叫?

好吧,我寫了這個代碼,我的情況和它的作品:

public class OutgoingCallReceiver extends BroadcastReceiver { 

     public void onReceive(Context context, Intent intent) { 
       Bundle bundle = intent.getExtras(); 

       if(null == bundle) return; 

       String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 

       if(phonenumber.equals("11111111")) { 

        Intent myactivity = new Intent(context, MyKeyboard.class); 
        myactivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(myactivity); 

       } 

     } 

} 

在清單我補充一點:

<receiver 
      android:name=".OutgoingCallReceiver" 
      android:enabled="true"> 
        <intent-filter> 
         <action android:name="android.intent.action.NEW_OUTGOING_CALL"/> 
        </intent-filter> 
</receiver> 

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 
+0

這可以通過兩種方式完成,並且相對容易實施,但是由於您不清楚自己實際需要做什麼,因此無法提供準確的答案。您可以註冊您的一個活動,以便在引發意向提示時進行調用,或者您可以創建一個廣播接收器來監聽意圖,並從中獲取電話號碼,但是您的應用程序需要已經在運行第二種方法工作。 – 2012-04-25 12:56:54

+0

感謝您的回答。我使用了廣播接收器,但是我不確定這種方式是否正確。 – saloufa 2012-04-26 11:09:36

回答

0

我真的不知道,但我認爲這是一個非常危險的做法。這完全取決於您打算如何處理您的應用。如果它是一個錄音應用程序,我認爲你甚至不能考慮開發它,或者不要在互聯網上發佈它,因爲在許多國家這將是非法的。這就是我看到的以及我對你的問題的感受。關於Android有沒有15k地方搜索,看看android API。

http://developer.android.com/reference/android/provider/CallLog.Calls.html

這一點,例如,我不知道這是否是一個實時的日誌,或者如果它的調用後充滿終止。但是你可以朝那個方向搜索。