A data transmission method, performed by a terminal device, and comprising: generating, when idle bits in a media access control protocol data unit, MAC PDU, are insufficient to accommodate a buffer status report, BSR, that indicates M LCGs having to-be-sent data and an amount of to-be-sent data on all the M LCGs having to-be-sent data, a first indication information, wherein the first indication information is a truncated BSR, and the truncated BSR comprises a first octet and N octets following the first octet, wherein a bit in the first octet corresponds to one logical channel group, LCG, and a value of the bit indicates whether the LCG corresponding the bit has to-be-sent data, wherein M bits, having a first value, in the first octet indicate the M LCGs having to-be-sent data, and the N octets respectively indicates an amount of to-be-sent data on N LCGs in the M LCGs having to-be-sent data, wherein 2≤M≤8, 1≤N< M, wherein each of the M LCGs has a remaining delay budget of to-be-sent data, and the remaining delay budget of to-be-sent data on each of the N LCGs is less than the remaining delay budget of to-be-sent data in LCGs other than the N LCGs in the M LCGs having to-be-sent data, wherein data of different services is transmitted by using different logical channels, LCHs, of the M LCGs, and the remaining delay budget for each one of the M LCG is determined based on a minimum remaining delay budget indicated by a discard timer associated with one of the respective LCG, a LCH of the respective LCG, or a piece of data on any LCH of the respective LCG; and sending the first indication information at an idle bit location in the MAC PDU. generating, when idle bits in a media access control protocol data unit, MAC PDU, are insufficient to accommodate a buffer status report, BSR, that indicates M LCGs having to-be-sent data and an amount of to-be-sent data on all the M LCGs having to-be-sent data, a first indication information, wherein the first indication information is a truncated BSR, and the truncated BSR comprises a first octet and N octets following the first octet, wherein a bit in the first octet corresponds to one logical channel group, LCG, and a value of the bit indicates whether the LCG corresponding the bit has to-be-sent data, wherein M bits, having a first value, in the first octet indicate the M LCGs having to-be-sent data, and the N octets respectively indicates an amount of to-be-sent data on N LCGs in the M LCGs having to-be-sent data, wherein 2≤M≤8, 1≤N< M, wherein each of the M LCGs has a remaining delay budget of to-be-sent data, and the remaining delay budget of to-be-sent data on each of the N LCGs is less than the remaining delay budget of to-be-sent data in LCGs other than the N LCGs in the M LCGs having to-be-sent data, wherein data of different services is transmitted by using different logical channels, LCHs, of the M LCGs, and the remaining delay budget for each one of the M LCG is determined based on a minimum remaining delay budget indicated by a discard timer associated with one of the respective LCG, a LCH of the respective LCG, or a piece of data on any LCH of the respective LCG; and sending the first indication information at an idle bit location in the MAC PDU.