0
public class IncomingCall extends BroadcastReceiver {

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

        String phoneNumber;
        Bundle bundle=intent.getExtras();
        if(bundle!=null){
            phoneNumber=bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
            if(phoneNumber!=null){

                DatabaseHelper databaseHelper=new DatabaseHelper();
                Calendar c=Calendar.getInstance();
                ContentValues contentValues=new ContentValues();
                contentValues.put("incoming_number", phoneNumber);
                contentValues.put("date",String.valueOf(c.get(Calendar.DATE)+"-"+c.get(Calendar.MONTH)+"-"+c.get(Calendar.YEAR)));
                contentValues.put("time", String.valueOf(c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND)));
                databaseHelper.addContact(contentValues);
                databaseHelper.close();
            }
        }
    }

上面的代码在模拟器中工作正常,但在实际设备上它不再工作了。在我的应用程序中,我不想包含任何活动,那么如何解决这个问题。

4

1 回答 1

0

它在您的代码段中看不到,但是当您的代码在模拟器中运行时,您必须静态或动态注册此侦听器。

据我所知,您需要手动启动一次应用程序才能接收广播 [api 版本 3 起]。因此,如果您的模拟器和手机版本不同[手机高于 3],请从启动器抽屉启动应用程序,然后重试。这是作为一项安全功能添加的,因此只有用户手动启动的那些应用程序才能接收广播。

于 2013-05-23T06:01:57.967 回答