2012-07-15 55 views
0

我已经测试了我的接收器在模拟器上,并模拟面对呼叫模拟器,并可以记录电话状态,甚至可以获得呼叫号码, 但是,如果我尝试在真实设备上,这是行不通的。我添加了一个活动,如果它工作的背景,它的作品。但为什么我应该添加它?为什么必须在后台运行?阅读手机状态接收器不工作在真实的设备上

@Override 
public void onReceive(Context cnx, Intent nt) { 
    Bundle bnd = nt.getExtras(); 
    Log.e("EXTRA", "EXTRA"); 
    if (bnd != null) { 
     String state = bnd.getString(TelephonyManager.EXTRA_STATE); 
     Log.i("PHONE STATE", state); 



     if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { 
      Log.i("PHONE STATE", 
        bnd.getString(TelephonyManager.EXTRA_INCOMING_NUMBER)); 
     } 

    } 

回答

0

本意是在前台运行,如果你想在后台运行你的进程,你应该使用服务。 read here more

对于你的问题,你应该有一个接收器单独的类,清单文件注册接收机手机状态变化的行动,并与读取手机状态。

+0

尊敬的Ankit, 我已经在清单中注册了我的收货人并给予了必要的许可。它在不使用任何活动或服务的情况下运行模拟器。但它不能在真实设备上工作。是什么原因? – 2012-07-15 23:09:22

相关问题