- Возможно ли даже стороннему приложению заменить приложение по умолчанию в приложении вызова?
Да, начиная с API 23, это возможно.
- Существуют ли примеры реализации, использующие этот API, которые я могу использовать в качестве ссылки? Я нашел реализацию Google , но это системное приложение, которое использует некоторые разрешения, недоступные для других приложений (например:
android.permission.MODIFY_PHONE_STATE
).Единственный известный мне образец - это созданный мною образец https://github.com/arekolek/simple-phone , который уже упоминался в другом ответе. а также.
- Правильно ли я предполагаю, что после предоставления правильной
InCallService
регистрации манифеста и реализации заглушки я мог ожидать найти мое приложение вDefault Apps -> Phone
? Нужно ли мне объявить что-то еще?На самом деле, нет.
Как упомянуто в другом ответе по теме , вам вообще не нужно, чтобы
InCallService
появлялось в этом списке.Тем не менее, вам нужно зарегистрировать действие с двумя фильтрами намерений, один со схемой
tel
Ури, а другой с пустой схемой (недостаточно только одного из них):
Это смутно упоминается в документах , а явно указано в коде AOSP .
1128 Этого достаточно, чтобы появиться в этом списке. Только тогда, чтобы предоставить пользовательский интерфейс для вызова , вам действительно понадобится
InCallService
.
Вы можете попытаться minipage
это:
\begin{center}
\begin{tabular}{|l|l|l|l|l|l|}
\hline
\multirow{2}{*}{\begin{minipage}{0.5in}Long text to break\end{minipage}}
& Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
\cline{2-6}
& sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\
\hline
\hline
\end{tabular}
\end{center}
Однако, в вашем конкретном случае, я бы просто предложил ослабить ограничения других столбцов, потому что слишком много пространство там потрачено впустую. С каждым p{}
это заставляет другие столбцы иметь определенную ширину, поэтому недостаточно места для первого столбца.
Следующий код казался мне презентабельным, когда я его компилировал:
\begin{center}
\begin{tabular}{|l|l|l|l|l|l|}
\hline
\multirow{2}{*}{Long text to break}
& Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
\cline{2-6}
& sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\
\hline
\hline
\end{tabular}
\end{center}
для меня самый короткий и практичный ответ :
используют \linewidth
в качестве длины для параметра {width}
.
\usepackage{multirow}
\begin{document}
\begin{center}
\begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\hline
\multirow{2}{\linewidth}{Long text to break} % HERE IS A PROBLEM
& Thing & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}
\\ \cline{2-6}
& sth 1 & sth 1 & sth 2 & sth 1 & sth 2 \\ \hline
\hline
\end{tabular}
\end{center}
\end{document}
Вот и все!
Единственная возможная проблема заключается в том, что в невероятном случае, когда текст в других ячейках действительно короткий, он может выглядеть так:
Однако, если обычно ваша таблица содержит больше текста в других ячейках, чем просто «sth1», это будет выглядеть прекрасно: