相关疑难解决方法(0)

在Android原生来电屏幕上弹出窗口,如真正的来电Android应用

我正在开发一个广播接收器,用于Android中的来电和接听来电,我想在本地来电屏幕上弹出一个弹出窗口.

我完成了那段代码.但现在的问题是,在Android 4.1(Jelly Bean)API级别17中,当电话响铃时,它PHONE_STATE就会出现OFF HOOK,如果我正在调用一个活动,它会被调用,但它下面的代码不会被执行.我列出了代码:

我的广播接收器

package com.example.popwindowonincomingcallscreen;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;

public class IncomingBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.d("IncomingBroadcastReceiver: onReceive: ", "flag1");

        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        Log.d("IncomingBroadcastReceiver: onReceive: ", state);
        if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)
                || state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {

            Log.d("Ringing", "Phone is ringing");

            Intent i = new Intent(context, IncomingCallActivity.class);
            i.putExtras(intent);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
            Wait.oneSec();
            context.startActivity(i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在打电话的活动:

import android.app.Activity; …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-widget android-layout android-broadcast

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

从我自己的应用程序提供来电的来电显示

我想编写一个应用程序,通过查看我的应用程序中的表(例如SQLite数据库表)来识别传入(未知)调用的电话号码.

我已经使用呼叫目录扩展在iOS中实现了这一点,但对于Android,我能找到的唯一选项是使用带有弹出窗口BroadcastReceiver来显示本地来电屏幕以显示联系信息.

ContactsContract.Directory似乎提供了创建自定义目录的可能性,其中本机调用应用程序可以查找调用者ID.不幸的是,我找不到任何关于如何实现这一目标的好例子.

有没有人知道是否可以使用ContactsContract.Directory实现调用者ID,或者Android中是否存在与Android中的呼叫目录扩展相似的内容?如果是这种情况,示例代码将非常有用.

android contacts ios android-contentprovider ios-extensions

9
推荐指数
1
解决办法
651
查看次数

Android - INCOMING&OUTGOING电话

我每次打电话或每次接到电话时都会尝试显示一条消息.我制作了一个适用于INCOMING呼叫但不适用于OUTGOING呼叫的代码.我读过有关这个主题的不同帖子.

任何人都可以告诉我为什么以下代码显示我(当然这段代码没有做我之前提到的所有事情):
- 当我接到电话
时"OUTGOING" - 当我开始通话时"收到"然后"OUTGOING"

/*来自MainActivity*/

protected void onCreate(Bundle savedInstanceState) 
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  context = getApplicationContext();
  context.startService(new Intent(context, SvcCall.class));
 }
Run Code Online (Sandbox Code Playgroud)

/*来自SvcCall*/

public class SvcCall extends Service 
 {
  private static final String ACTION_OUT = "android.intent.action.PHONE_STATE";
  private static final String ACTION_IN = "android.intent.action.NEW_OUTGOING_CALL";
  private CallBr br_call;

  @Override
  public void onCreate()
   {
    super.onCreate();   
   }

  @Override
  public int onStartCommand(Intent intent, int flags, int startId)
   {
    final IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_OUT);
    filter.addAction(ACTION_IN); 
    this.br_call = new CallBr();
    this.registerReceiver(this.br_call, filter);
    return (START_STICKY);
   } …
Run Code Online (Sandbox Code Playgroud)

android

2
推荐指数
1
解决办法
9830
查看次数