lbe*_*gni 8 android phone-call android-intent
我有一个已经构建的应用程序,我想添加一个必须在呼叫结束时启动的功能.我怎样才能做到这一点?我认为在我的清单中宣布这样的事情
<activity android:name="Filter">
<intent-filter>
<category android:name="android.intent.SOMETHING" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
可能就足够了,但是Intent我必须在过滤器上放什么样的?
查看文档,我发现只有检测到调用何时启动的意图.
我正在寻找什么?
Gop*_*opi 21
我用广播接收器完成了这个.作品!代码看起来像这样 -
AndroidManifest.xml中
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gopi"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".IncomingCallTracker">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
IncomingCallTracker代码片段看起来像 -
public class IncomingCallTracker extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Set<String> keys = bundle.keySet();
for (String key : keys) {
Log.i("MYAPP##", key + "="+ bundle.getString(key));
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在捆绑中查找关键"状态".当其值为"IDLE"时,表示调用已结束,您可以根据此操作执行任何操作.
Don*_*rty 16
您可以使用PhoneStateLisenter监听呼叫状态的更改.
所以你听LISTEN_CALL_STATE的变化.
使用onCallStateChanged方法.
因此,当状态从OFFHOOK变为IDLE时,启动您的应用程序
| 归档时间: |
|
| 查看次数: |
10918 次 |
| 最近记录: |