我可以在其他版本的android中检索来电号码,但无法在marshmallow android
中检索来电编号
public void onReceive(Context context, Intent intent) {
mContext=context;
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_RINGING)) {
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Toast.makeText(context, "Call from:" + incomingNumber, Toast.LENGTH_LONG).show();
final Thread thread=new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
intentStart = new Intent(mContext.getApplicationContext(), MainActivity.class);
intentStart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intentStart);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();
}}
经过轻微修改,您的代码在使用MRA58K的Nexus 6上运行良好。我删除了第2行,并使用context
而不是mContext
。我还宣布了13号线的局部意图。
当应用程序没有PHONE权限时,就会发生这种情况。它的工作原理-http://developer.android.com/intl/es/training/permissions/index.html#permission-组