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();
}
}
}
以上代码在模拟器中工作正常,但在实际设备上它不再工作。在我的应用程序中,我不想包含任何活动,所以如何解决问题。
答案 0 :(得分:0)
在您的代码段中没有看到它,但是当您的代码在模拟器中工作时,您必须静态或动态地注册此侦听器。
我记得,我需要手动启动你的应用程序一次才能接收广播[api版本3以后]。因此,如果您的模拟器和手机版本不同[手机高于3],请从启动器抽屉启动应用程序,然后重试。 这是作为安全功能添加的,因此只有那些用户手动启动的应用才会收到广播。