小编Jul*_*fer的帖子

你如何接收broadcastreceiver的拨出电话

我正在尝试在启动拨出呼叫后识别并转移到活动.我ACTION_NEW_OUTGOING_CALL在Intent过滤器中使用过.但是我怎么认识到呼叫是外向的.我为来电做了这个(如下所示),但我可以用什么而不是EXTRA_STATE_RINGING.

public class OutgoingBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING))
        {
            Intent i = new Intent(context, OutgoingCallScreenDisplay.class);
            i.putExtras(intent);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android broadcastreceiver android-intent

7
推荐指数
2
解决办法
2万
查看次数

呼入屏幕上的活动弹出窗口

我试图覆盖来电屏幕 - 我知道我无法改变它所以我试图弹出一个活动ontop.

我的代码工作正常,除非手机闲置几分钟.

我的代码:

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.myfirstapp"
      android:versionCode="7"
      android:versionName="7">
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"></uses-sdk>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <receiver android:name=".MyPhoneBroadcastReceiver" android:enabled="true">
            <intent-filter android:priority="99999">
                <action android:name="android.intent.action.PHONE_STATE" />
            </intent-filter>
        </receiver>
        <activity
            android:name=".Call" >
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

MyPhoneBroadcastReceiver.java:

public class MyPhoneBroadcastReceiver extends BroadcastReceiver{

    public void onReceive(final Context context, Intent intent) {

        Thread pageTimer = new Thread(){
            public void run(){
                try{
                    sleep(700);
                } catch (InterruptedException e){
                    e.printStackTrace();
                } finally {
                    Intent i = new …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
1
解决办法
7682
查看次数