检测到来电时启动短视频,第一种情况是使用仿真器

时间:2010-05-14 21:33:15

标签: android android-emulator android-service

我希望能够在来电时启动短视频。视频将循环播放,直到应答呼叫为止。我已将视频加载到模拟器SD卡上,然后创建了适当的级别avd,其中包含磁盘上sdcard.iso文件的路径。由于我在Mac OS x雪豹上运行,我能够确认SD卡的内容。所有测试都在Android模拟器上完成。

在一个单独的项目TestVideo中,我创建了一个只从SD卡启动视频的活动。这按预期工作。然后我创建了另一个项目TestIncoming,它创建了一个活动,该活动创建一个覆盖onCallStateChanged(int state,String incomingNumber)方法的PhoneStateListener。在onCallStateChanged()方法中,我检查state == TelephonyManager.CALL_STATE_RINGING。如果为true,我创建一个启动视频的Intent。我实际上正在使用上面TestVideo项目中的代码。这是代码段。

PhoneStateListener callStateListener = new PhoneStateListener() {
   @Override
   public void onCallStateChanged(int state, String incomingNumber) {
       if(state == TelelphonyManager.CALL_STATE_RINGING) {
           Intent launchVideo = new Intent(MyActivity.this, LaunchVideo.class);
           startActivity(launchVideo);
       }
   }
};

PhoneStateListener被添加到TelephonyManager.listen()方法中,如此,

telephonyManager.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE);

以下是我不清楚的部分,清单。我试过的是以下内容:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.incomingdemo"
  android:versionCode="1"
  android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".IncomingVideoDemo"
              android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.ANSWER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity android:name=".LaunchVideo"
              android:label="LaunchVideo">
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="2" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

</manifest>

我在IncomingVideoDemo活动中设置断点后运行调试器,其中创建了PhoneStateListener并且没有命中任何断点。非常感谢任何解决这个问题的见解。感谢。

0 个答案:

没有答案