我没有收到拨出电话的电话号码?在模拟器和真实手机中也都为空

2023-12-21

调用.java:

   public class Call extends Activity{
boolean timerhasstarted;
Intent callIntent;
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        call();
    }
    void  call()
    {
        String num="7829893070";
     callIntent=new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:"+num));
        if(!timerhasstarted)
        {
        startActivity(callIntent);
        ct.start();
        timerhasstarted=true;
        }
        else {
            ct.cancel();
            timerhasstarted=false;
            Toast.makeText(getApplicationContext(), "timer not started ",Toast.LENGTH_SHORT ).show();
        }
       }
   CountDownTimer ct=new CountDownTimer(10000,1000) {
    @Override
    public void onTick(long millisUntilFinished) {
        Toast.makeText(getApplicationContext(), "time: "+millisUntilFinished/1000, Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onFinish() {
        Toast.makeText(getApplicationContext(), "time over ..",Toast.LENGTH_SHORT ).show();
        OutgoingCallReceiver out=new OutgoingCallReceiver();
        out.onReceive(getApplicationContext(),callIntent);
    }
     };
      }

OutgoingCallReceiver.java :

 public class OutgoingCallReceiver extends BroadcastReceiver { 

     public static final String ABORT_PHONE_NUMBER = "7204230210";

     private static final String OUTGOING_CALL_ACTION = "android.intent.action.NEW_OUTGOING_CALL";
     private static final String INTENT_PHONE_NUMBER = "android.intent.extra.PHONE_NUMBER";
     String TAG="EMERGENCY";
     @Override
    public void onReceive(final Context context, final Intent intent) {
    Log.v(TAG, "OutgoingCallReceiver .. : onReceive");
    Log.i( "l", "onReceive()" );
    Log.i( "l", "context: " + context );
    Log.i( "l", "intent: " + intent ); 
    String getphoneNumber = this.getResultData();
    Log.i(TAG,"getphnum "+getphoneNumber);

     String phoneNumber1 = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
     Log.i(TAG,"PHONE_NUMBER  "+phoneNumber1);
    Toast.makeText(context, "PHONE_NUMBER  "+phoneNumber1, Toast.LENGTH_LONG).show();
    if (intent.getAction().equals(OutgoingCallReceiver.OUTGOING_CALL_ACTION)) {
    Log.v(TAG, "OutgoingCallReceiver NEW_OUTGOING_CALL received");
     Toast.makeText(context, "OutgoingCallReceiver NEW_OUTGOING_CALL received", Toast.LENGTH_SHORT).show();  

        // get phone number from bundle
       String phoneNumber = intent.getExtras().getString("android.intent.action.NEW_OUTGOING_CALL");
        if ((phoneNumber != null) && phoneNumber.equals(OutgoingCallReceiver.ABORT_PHONE_NUMBER)) {
            Toast.makeText(context, "NEW_OUTGOING_CALL intercepted to number 123-123-1234 - aborting call",
                Toast.LENGTH_LONG).show();
            abortBroadcast();
           // this.setResultData(ABORT_PHONE_NUMBER);
        }
    }
}

电话号码

  • String PhoneNumber = Intent.getExtras().getString("android.intent.action.NEW_OUTGOING_CALL"); //获取空数
  • 字符串电话号码 = Intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); //获取空数

  • 这里写哪一条语句来获取电话号码?

  • 想要获取传出的电话号码,但在 logcat 和我检查的手机中,它显示空值。为什么?

  • 我必须写什么声明才能保留拨出的电话号码?(我只拨打过一次电话)。

设置结果数据(空)

  • 使用这种方法,必须结束通话,但不能结束通话..在我的 电话?我需要做什么才能结束手机通话?

logcat

 03-15 11:50:06.062: V/EMERGENCY(490): OutgoingCallReceiver .. : onReceive
 03-15 11:50:06.082: I/l(490): onReceive()
 03-15 11:50:06.082: I/l(490): context: android.app.Application@44f3f8b0
 03-15 11:50:06.082: I/l(490): intent: Intent { act=android.intent.action.CALL dat=tel:7829893070 }
03-15 11:50:06.113: I/EMERGENCY(490): getphnum null
03-15 11:50:06.122: I/EMERGENCY(490): PHONE_NUMBER  null
03-15 11:50:10.522: D/dalvikvm(264): GC_EXPLICIT freed 71 objects / 3424 bytes in 189ms
03-15 11:50:15.653: D/dalvikvm(166): GC_EXPLICIT freed 4298 objects / 244840 bytes in 218ms

这里 getphnum & PHONE_NUMBER 显示为空。通过吐司,我也知道电话设备中的空值。


您可以在活动中尝试此操作,然后在后台服务中执行此操作

public void outgoingRecord() 
  { 
          Cursor c = getContentResolver().query( 
              android.provider.CallLog.Calls.CONTENT_URI, 
              null, 
              null, 
              null, 
              android.provider.CallLog.Calls.DATE+ " DESC"); 
          startManagingCursor(c); 
  int numberColumn = c.getColumnIndex( 
          android.provider.CallLog.Calls.NUMBER); 
int dateColumn = c.getColumnIndex( 
          android.provider.CallLog.Calls.DATE); 
// type can be: Incoming, Outgoing or Missed 
int typeColumn = c.getColumnIndex( 
          android.provider.CallLog.Calls.TYPE); 
int durationColumn=c.getColumnIndex( 
        android.provider.CallLog.Calls.DURATION); 
// Will hold the calls, available to the cursor 
ArrayList<String> callList = new ArrayList<String>(); 
try{ 
boolean moveToFirst=c.moveToFirst(); 
Log.e("MOVETOFIRST", "moveToFirst="+moveToFirst); 
} 

catch(Exception e) 
{ 
          Log.e("MOVETOFIRSTERROR","MOVETOFIRST Error="+e.toString()); 
} 

         String callerPhoneNumber = c.getString(numberColumn); 
         int callDate = c.getInt(dateColumn); 
         int callType = c.getInt(typeColumn); 
         int duration=c.getInt(durationColumn); 
         Log.d("CALLS", "callDate="+callDate); 
             switch(callType){ 
              case android.provider.CallLog.Calls.INCOMING_TYPE: 
                          Log.d("INCOMINGCALLLOG", "CallerPhoneNum="+ 
callerPhoneNumber+" "+"Duration="+duration); 
                                break; 
              case android.provider.CallLog.Calls.MISSED_TYPE: 
                                  break; 
              case android.provider.CallLog.Calls.OUTGOING_TYPE: 
                             Log.d("OUTGOINGCALLLOG", 
"CallerPhoneNum="+ callerPhoneNumber+" "+"Duration="+duration); 
                                 break; 
} 

  } 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我没有收到拨出电话的电话号码?在模拟器和真实手机中也都为空 的相关文章

  • 如何使用 ProGuard 将所有方法保留在类中

    我使用 ProGuard 来优化我的 Android 应用程序 然而 对于 Android 仪器测试 我需要一些 但不是全部 类来保留所有成员 我尝试了各种方法 最后一个是 keepclassmembers public class com
  • Firebase 数据库快速入门处理计数的方式安全吗?

    我想为文章点赞创建一个增量字段 我指的是这个链接 https firebase google com docs database android save data save data as transactions https fireb
  • GridView 中多次调用 getView()

    我的 Activity 由包含 40 多个元素的 GridView 组成 开始活动后 用户最多可以看到 15 个项目 3 行 每行 5 个项目 我在 getView 正文中编写传递给获取 View 的 LogCat 编号 Log i get
  • 在 Anko DSL 中创建自定义 View/ViewGroup 类

    我想创建一个自定义视图 它只是一些 Android 视图的包装 我考虑创建一个自定义 ViewGroup 来管理其子视图的布局 但我不需要这么复杂 我基本上想做的是 class MainActivity verticalLayout tex
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • 在 Android 中长按时从操作模式中删除后退/主页按钮

    我已经在里面长按实现了上下文操作模式recycler view 为此我打电话给ActionModeCallback从创建动作模式开始 创建动作模式时 默认显示后退箭头 检查如下 单击后退箭头 操作模式将关闭 现在我想要hide or rem
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • Android:应用内计费V3超时返回哪个响应码?

    出现网络超时情况时 Google Play 应用内结算服务 ice er V3 将返回哪些响应状态代码 它的所有功能都是统一的吗 我将在这里描述我的发现 我通过拔掉主机插头 在安装了全功能 GP GP Store V3 10 10 GP S
  • 以编程方式更新 Android 中的联系人姓名和电话号码

    我创建一个应用程序来读取 更新 删除联系人详细信息 这是更新联系人姓名和电话号码的问题 有人可以帮助我吗 我该怎么做 我正在使用以下代码 但它不起作用 Override public View onCreateView LayoutInfl
  • 如何强制从本机代码打开 Android 软键盘?

    我有一个游戏 当用户触摸屏幕时 它使用从 C 到 Java 的回调来强制打开软键盘 Java代码很简单是这样的 this inputMethodManager toggleSoftInput InputMethodManager SHOW
  • 导航抽屉默认片段

    我是一名新手开发人员 我正在将导航抽屉与 android support v7 集成到我的应用程序中 我有一个问题 当我启动应用程序时 主要布局是这样的
  • onClick 未在带有子项的 LinearLayout 上触发

    我有一个自定义的 LinearLayout 和一个较小的 TextView 子级 我希望能够单击 TextView 未覆盖的区域 因此我将 clickable true 和 onclicklistener 设置为 LinearLayout
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 在为 Android 实现 Google 登录时,任务“:app:transformClassesWithDexForDebug”执行失败

    我正在尝试为 Android 实现 Google 登录 并且我正在按照以下说明进行操作 https developers google com identity sign in android start integrating https
  • onBackPressed 隐藏 不破坏 Activity

    我知道如何取消后退按键 以便活动 主窗口保持可见 public void onBackPressed return 我的目标是隐藏该活动 但是 在没有完成它的情况下 您如何在 onBackPressed 事件中做到这一点 即我想达到 onP
  • Nexus 7 (2013) 和 Win 7 64 - 尽管检查了许多论坛和在线资源,仍无法安装 USB 驱动程序

    我正在尝试设置 Nexus 7 2013 进行调试 但我在安装 USB 驱动程序的步骤中陷入困境 到目前为止 这是我尝试过的 采取的步骤 在 Nexus 7 2013 上打开调试模式 连接设备至 PC 下载 Google USB 驱动程序于
  • 在 Honeycomb Android 3.0 中显示 Action Bar 菜单项的图标

    我正在使用 Honeycomb android 3 0 开发 Android 应用程序 我正在尝试在 Action Bar 中显示菜单 菜单有一个图标和标题 当我们单击菜单项时 它会以下拉列表的形式显示其项目 它是下拉列表中带有项目名称但不
  • Android AutoCompleteTextView 带芯片

    我不确定我是否使用了正确的词语来描述此 UI 功能 但我已附上我希望在我的应用程序中实现的目标的快照 它由 Go SMS 使用 用户在编辑文本中键入联系人 在用户从完成下拉列表中选择联系人后 该联系人将被插入到编辑文本中 如附图所示 编辑文
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • 在 Android 中使用 iText 将图像添加到特定位置

    我想使用 Android 中的 iText 将图像添加到 PDF 文件中的特定位置 这是一个可填写的表单 我添加了作为图像占位符的文本框 我想要做的就是像这样获取该文本框和图像 public class FormFill public st

随机推荐