我希望在用户拨打特定电话时激活我的应用程序。有没有什么方法可以在同一时间(而不是后用语言)获取用户正在进行呼叫的信息,以便在适当的时间激活应用程序?
好的,我为我的案例编写了这段代码并且有效:
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"/>
答案 0 :(得分:0)
我真的不知道,但我认为这是一种非常危险的做法。这一切都取决于您打算如何处理您的应用程序。如果它是一个录音应用程序,我认为你甚至不能考虑开发它,或者不在互联网上发布它,因为它在许多国家都是非法的。这就是我看到的以及我对你的问题的看法。关于Android,没有15k的地方可以搜索,看看android API。
http://developer.android.com/reference/android/provider/CallLog.Calls.html
例如,我不知道它是否是实时日志,或者是否在呼叫终止后填写。但你可以朝那个方向搜寻。