如何理解用户正在与手机(Android)进行交互?

时间:2014-03-15 12:31:39

标签: java android

我试图找到如何理解手机正在使用?我不知道有没有一种简单的方法可以做到这一点。我在以下几行中有一些任务要做。例如,我怎么知道用户正在拨打电话或发送短信。

实际上我想知道三个基本背景,而且是: 智能手机未使用, 智能手机未处理, 智能手机没有动。

这些是我想知道的详细任务:

  1- User is interacting with the phone(also carrying)
    App Usage
    Call
    Sms
    Activities
     Detailed Context
       Smartphone is in use
       Smartphone is handled or not
       Moving(not at all,slightly, a lot)
       Location(hand, pocket,bag)
  2- User isn't carrying the phone
    Phone stationary
    Detailed Context
    Smartphone is not in use
    Smartphone is not handled
    Smartphone is not moving
    Location(not worn)

1 个答案:

答案 0 :(得分:1)

1.使用加速度计检测手机用户是否正在移动。因此,您将知道手机是否正在移动。

2.对于来电,我们需要使用TelephonyManager类及其方法listen来注册一个侦听器,该侦听器将接收呼叫状态,数据连接,网络,SIM和其他与电话相关的事件。我们只对通话状态通知感兴趣。这需要android.permission.READ_PHONE_STATE权限。

3.state是调用状态,可以是CALL_STATE_RINGING,CALL_STATE_OFFHOOK或CALL_STATE_IDLE。响铃是有人打电话给我们的状态,摘机是当有活动或保持呼叫时,空闲是当没有人打电话给我们而且没有正常通话时。我们对振铃状态感兴趣。

请参阅此链接:http://www.codeproject.com/Articles/548416/Detecting-incoming-and-outgoing-phone-calls-on-And

它将引导你完成代码。