要解决Android MMS内容提供程序不存储交易ID的问题,可以使用以下代码示例:
// 定义一个名为MmsProvider的自定义内容提供程序类
public class MmsProvider extends ContentProvider {
    // 定义MMS交易ID的列名常量
    private static final String COLUMN_TRANSACTION_ID = "transaction_id";
    
    // ...其他必要的变量和方法...
    
    // 在insert()方法中,将交易ID存储到MMS数据库中
    @Override
    public Uri insert(Uri uri, ContentValues values) {
        // 如果插入的是MMS数据
        if (uriMatcher.match(uri) == MMS_MESSAGES) {
            // 从ContentValues中获取交易ID
            String transactionId = values.getAsString(COLUMN_TRANSACTION_ID);
            
            // 将交易ID存储到MMS数据库中
            // 使用合适的数据库操作方法,例如:
            SQLiteDatabase db = mDbHelper.getWritableDatabase();
            long rowId = db.insert(MMS_TABLE, null, values);
            
            // 返回插入的记录的URI
            if (rowId > 0) {
                Uri insertedUri = ContentUris.withAppendedId(uri, rowId);
                getContext().getContentResolver().notifyChange(insertedUri, null);
                return insertedUri;
            }
        }
        
        return null;
    }
    
    // ...其他必要的重写方法和类定义...
}
上述代码中,我们在insert()方法中添加了处理交易ID的逻辑。首先,我们检查插入的数据是否属于MMS消息,通过匹配Uri来判断。如果是MMS数据,我们从ContentValues中获取交易ID,并使用适当的数据库操作方法将其存储到MMS数据库中。
请注意,上述代码只是一个示例,需要根据实际情况进行调整和完善。具体的数据库操作方法和表结构可能因应用程序的需求而有所不同。