私は似たようなことをしようとしています。解決しましたか?手作りすればいいと思います!電話番号をログインとして使用し(すべての企業が電話番号を電話に保存しているわけではありません)、メッセージ番号とログに記録された番号を比較すると思います。レイアウトでは、次のようなものを使用できます。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="1.0" >
<TextView
android:id="@+id/txtMessageDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginBottom="5dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginTop="10dip"
android:maxWidth="250dip"/>
<TextView
android:id="@+id/txtMessageRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/righttext"
android:layout_marginLeft="16dp"
android:maxWidth="250dip" />
<TextView
android:id="@+id/txtMessageLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="37dp"
android:layout_toRightOf="@+id/lefttext"
android:maxWidth="250dip"/>
</RelativeLayout>
ログに記録された番号があなたの番号からのものか、反対側の番号からのものかを知ることができるので、コードでレイアウトを膨らませることができ、「if」を使用して自分の名前または連絡先の名前を書くことができます。これに似たもの:
if(o.getOriginatingAddress().equals(MainActivity.loggedNumber))
tvOutMessage.setText("me: " + o.getMessageBody());
else
tvInMessage.setText("contact:" + o.getMessageBody());
これが最善の解決策かどうかはわかりませんが、お役に立てば幸いです。