如何访问用户对移动电话的呼叫?

时间:2012-04-25 12:41:30

标签: android

我希望在用户拨打特定电话时激活我的应用程序。有没有什么方法可以在同一时间(而不是后用语言)获取用户正在进行呼叫的信息,以便在适当的时间激活应用程序?

好的,我为我的案例编写了这段代码并且有效:

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);

                }

        }

}

在Manifest中我添加:

<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"/>

1 个答案:

答案 0 :(得分:0)

我真的不知道,但我认为这是一种非常危险的做法。这一切都取决于您打算如何处理您的应用程序。如果它是一个录音应用程序,我认为你甚至不能考虑开发它,或者不在互联网上发布它,因为它在许多国家都是非法的。这就是我看到的以及我对你的问题的看法。关于Android,没有15k的地方可以搜索,看看android API。

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

例如,我不知道它是否是实时日志,或者是否在呼叫终止后填写。但你可以朝那个方向搜寻。

相关问题