我可以在其他版本的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();
}}
答案 0 :(得分:0)
经过微小的修改,您的代码在我的Nexus 6上使用MRA58K正常工作。我删除了第2行并使用了context
而不是mContext
。我还在第13行宣布了当地意图。
答案 1 :(得分:0)
当应用程序没有PHONE权限时会发生这种情况。 它是如何工作的 - http://developer.android.com/intl/es/training/permissions/index.html#permission-groups