A method for transmitting uplink control information, comprising: generating, by a terminal device, an encoded uplink data packet, wherein the uplink data packet belongs to an uplink channel, the uplink channel is carried on a candidate time-frequency resource in a first time transmission interval, TTI, the TTI comprises a first and a second start point, which are used based on a contention mechanism, the candidate time-frequency resource is a first time-frequency resource or a second time-frequency resource, the second time-frequency resource is a time-frequency resource in the first time-frequency resource, the first time-frequency resource corresponds to the first TTI, and the second time-domain start point comprised in the second time-frequency resource is later than the first time-domain start point comprised in the first time-frequency resource; performing, by the terminal device, detection on a carrier in which the candidate time-frequency resource is located, and sending, by the terminal device, the uplink channel on the candidate time-frequency resource based on a result of the detection, wherein the uplink channel comprises uplink control information and the encoded uplink data packet, wherein the detection is based on the contention mechanism, wherein the sending, by the terminal device, the uplink channel on the candidate time-frequency resource based on a result of the detection comprises: when the terminal device determines, before the first time-domain start point, that the carrier, in which the candidate time-frequency resource being the first time-frequency resource is located, is not in a sendable state, and the terminal device determines, before the second time-domain start point, that the carrier, in which the candidate time-frequency resource being the second time-frequency resource is located, is in a sendable state, sending, by the terminal device, the uplink channel on the second time-frequency resource. generating, by a terminal device, an encoded uplink data packet, wherein the uplink data packet belongs to an uplink channel, the uplink channel is carried on a candidate time-frequency resource in a first time transmission interval, TTI, the TTI comprises a first and a second start point, which are used based on a contention mechanism, the candidate time-frequency resource is a first time-frequency resource or a second time-frequency resource, the second time-frequency resource is a time-frequency resource in the first time-frequency resource, the first time-frequency resource corresponds to the first TTI, and the second time-domain start point comprised in the second time-frequency resource is later than the first time-domain start point comprised in the first time-frequency resource; performing, by the terminal device, detection on a carrier in which the candidate time-frequency resource is located, and sending, by the terminal device, the uplink channel on the candidate time-frequency resource based on a result of the detection, wherein the uplink channel comprises uplink control information and the encoded uplink data packet, wherein the detection is based on the contention mechanism, wherein the sending, by the terminal device, the uplink channel on the candidate time-frequency resource based on a result of the detection comprises: when the terminal device determines, before the first time-domain start point, that the carrier, in which the candidate time-frequency resource being the first time-frequency resource is located, is not in a sendable state, and the terminal device determines, before the second time-domain start point, that the carrier, in which the candidate time-frequency resource being the second time-frequency resource is located, is in a sendable state, sending, by the terminal device, the uplink channel on the second time-frequency resource.