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

1 回答 1

0

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

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

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

于 2012-04-25T12:49:34.793 回答