デフォルトのフルスクリーンを呼び出します。
デフォルトでは、フォームが表示画面の上部のみ、Androidの通知ウィンドウが表示されている呼び出して、今フルスクリーンで
場所を変更します。
アルプス\ベンダ\ MediaTekの\独自\パッケージ\アプリ\ダイヤラの\ javaの\ COMアンドロイド\ \ incallui \ InCallPresenter.java
private boolean startUi(InCallState inCallState) {
boolean isCallWaiting = mCallList.getActiveOrBackgroundCall() != null &&
mCallList.getIncomingCall() != null;
Log.e(this, "isCallWaiting=="+isCallWaiting + " inCallState="+inCallState);
Log.i(this, " isIncoming="+inCallState.isIncoming());
// If the screen is off, we need to make sure it gets turned on for incoming calls.
// This normally works just fine thanks to FLAG_TURN_SCREEN_ON but that only works
// when the activity is first created. Therefore, to ensure the screen is turned on
// for the call waiting case, we finish() the current activity and start a new one.
// There should be no jank from this since the screen is already off and will remain so
// until our new activity is up.
if (isCallWaiting) {
if (mProximitySensor.isScreenReallyOff() && isActivityStarted()) {
Log.i(this, "Restarting InCallActivity to turn screen on for call waiting");
mInCallActivity.finish();
return false;
} else {
Log.i(this, "show InCallActivity for waiting call");
showInCall(false, false);
}
} else {
////cczheng add show Full Screen in call UI replace incall notification
//mStatusBarNotifier.updateNotification(mCallList);
mContext.startActivity(InCallActivity.getIntent(
mContext, false/*showDialpad*/, false/*newOutgoingCall*/, true /* forFullScreen */));
}
return true;
}
InCallActivityを開始するupdateNotificationの道を交換します
連絡先は、帰属ショーの増加を呼び出しを保存した場合には
アンドロイド元のホーム表示条件、発信者の番号が連絡先に格納されていない場合、つまり、ページが発信者番号として表示され、その数は、電気帰属の下に表示されます
番号が連絡先として保存されている場合は、呼び出しコンタクトページは、名前を表示する、呼び出し属性は表示されません。需要、接触状況だけでなく、通話属性を表示します。
プロセスが別のクエリを紹介します帰っ呼び出して、これを見ることができます自宅の電話アプリケーションを識別する番号-Android
レンダリング
場所を変更します。
1、アルプス\ベンダ\テック\独自\パッケージ\アプリ\ダイヤラの\ javaの\ COMアンドロイド\ \ incallui \ CallerInfoAsyncQuery.java
void updateData(int token, Object cookie, Cursor cursor) {
.....
if (true/*TextUtils.isEmpty(mCallerInfo.name)*/) {//cczheng change true
// Actually when no contacts match the incoming phone number,
// the CallerInfo object is totally blank here (i.e. no name
// *or* phoneNumber). So we need to pass in cw.number as
// a fallback number.
mCallerInfo.updateGeoDescription(mQueryContext, cw.number);
}
......
}
ケース番号とクエリゴーホームの名前
2、アルプス\ベンダ\テック\独自\パッケージ\アプリ\ダイヤラの\ javaの\ COMアンドロイド\ \ incallui \ CallCardPresenter.java
private void updatePrimaryDisplayInfo() {
......
mInCallScreen.setPrimary(
new PrimaryInfo(
number,
mPrimary.updateNameIfRestricted(name),
nameIsNumber,
shouldShowLocationAsLabel(nameIsNumber, mPrimaryContactInfo.shouldShowLocation)
? mPrimaryContactInfo.location
: number + "\n" + mPrimaryContactInfo.location/*null*/,/*cczheng change null to locationlabel*/
isChildNumberShown || isCallSubjectShown ? null : mPrimaryContactInfo.label,
mPrimaryContactInfo.photo,
mPrimaryContactInfo.photoType,
mPrimaryContactInfo.isSipCall,
showContactPhoto,
hasWorkCallProperty || isWorkContact,
mPrimary.isSpam(),
mPrimary.answeringDisconnectsForegroundVideoCall(),
shouldShowLocation(),
mPrimaryContactInfo.lookupKey,
multimediaData,
mPrimary.getNumberPresentation()));
.....
}
元の数がnullと選択的スプライシングの家で、\ nは線で示します
3、\ COM \ androidの\ incallui \ contactgrid \ RES \レイアウト\ incall_contactgrid_bottom_row.xml \ダイヤラの\ javaのアプリ\ \ベンダ\テック\独自\パッケージアルプス
contactgrid_forwardNumberとcontactgrid_bottom_textアンドロイドのID:単一行=「true」をfalseに、ディスプレイをラップします
これら三つの場所はダイヤラを再コンパイル変更し、[OK]効果を確認するためにプッシュします
ます。https://www.jianshu.com/p/f83f27c15b1cで再現