覆盖来电屏幕?
你好,我想知道是否有一种方法来覆盖来电屏幕添加更多的功能呢?如果是这样,你可以指出我正确的方向还是提供一些示例代码?覆盖来电屏幕?
---------------------------------------------- ----编辑:--------------------------
当接到电话时,我的接收器工作良好,但如何我得到当前窗口来覆盖通话屏幕?这是我到目前为止...但我得到一个classCastException试图从上下文转换为活动,我不能想出任何其他方式获得访问窗口。
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
String state = extras.getString(TelephonyManager.EXTRA_STATE);
Log.w("DEBUG", state);
Log.w("DEBUG", "-------------------------------------------------- Broadcast Received");
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
String phoneNumber = extras
.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
Log.w("DEBUG", phoneNumber);
Activity activity = (Activity)context.getApplicationContext();
Window window = activity.getParent().getWindow();
window.addContentView(window.findViewById(R.layout.textalertbuttonview),null);
Log.w("DEBUG", "------------------------Button Added");
}
}
else {
Log.w("DEBUG", "---------------------------------------------------no Extras");
}
}
------------------------------------------- -------编辑2:--------------------------
这似乎并没有经过一些研究后,我实际上可以将元素添加到实际的来电屏幕。所以我必须做出自己的看法并覆盖来电屏幕。但我仍然对想法持开放态度......我看到了传入呼叫,但无法找到该项目的源代码。
一般来说: 您可以设置一个BroadcastReceiver听PHONE_STATE:
<receiver android:name=".CallsBroadcastReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
那么这个接收器内(检查要处理(振铃电话的状态之后,在电话,挂起来,等。)你应该得到当前窗口(应该是呼叫屏幕),并添加一个视图 当然,如果状态不是你想要处理的状态,请删除视图
非常一般,但这就是主意。
谢谢,但我怎么会从onRecieve方法中获取当前窗口?我发布了一些我使用过的代码,但得到了classcastexception。 – Pengume
如果您有更好的解决方案,请分享。我也试图做同样的事情。非常感谢您的帮助 – png