A data transmission method, applied to a terminal, and comprising: establishing (S401, S1001, S1201), by the terminal, a wireless connection to another terminal; establishing (S402, S1004, S1204), by the terminal, a wired universal serial bus USB connection to the other terminal; displaying, by the terminal, a first interface, wherein the first interface comprises at least one piece of candidate data; selecting to-be-transmitted data from the at least one piece of candidate data in response to a first input of a user on the first interface; obtaining a battery level of the other terminal using the established wireless connection or the established wired USB connection; determining, by the terminal, a size of first data comprised in the to-be-transmitted data and a size of second data comprised in the to-be-transmitted data based on a battery level of the terminal and the obtained battery level of the other terminal; sending in response to a second input of the user on the first interface, by the terminal, the first data to the other terminal through the wireless connection and the second data to the other terminal through the wired USB connection; after the establishing, by the terminal, of the wired USB connection to the other terminal supplying, by the terminal, power to the other terminal through the wired USB connection; and after the supplying, by the terminal, of the power to the other terminal through the wired USB connection obtaining a remaining battery level of the terminal and a remaining battery level of the other terminal using the established wireless connection or the established wired USB connection; and switching a host-slave relationship of the wired USB connection based on the obtained remaining battery level of the terminal and the obtained remaining battery level of the other terminal such that interruption of the sending of the to-be-transmitted data is avoided. establishing (S401, S1001, S1201), by the terminal, a wireless connection to another terminal; establishing (S402, S1004, S1204), by the terminal, a wired universal serial bus USB connection to the other terminal; displaying, by the terminal, a first interface, wherein the first interface comprises at least one piece of candidate data; selecting to-be-transmitted data from the at least one piece of candidate data in response to a first input of a user on the first interface; obtaining a battery level of the other terminal using the established wireless connection or the established wired USB connection; determining, by the terminal, a size of first data comprised in the to-be-transmitted data and a size of second data comprised in the to-be-transmitted data based on a battery level of the terminal and the obtained battery level of the other terminal; sending in response to a second input of the user on the first interface, by the terminal, the first data to the other terminal through the wireless connection and the second data to the other terminal through the wired USB connection; after the establishing, by the terminal, of the wired USB connection to the other terminal supplying, by the terminal, power to the other terminal through the wired USB connection; and after the supplying, by the terminal, of the power to the other terminal through the wired USB connection obtaining a remaining battery level of the terminal and a remaining battery level of the other terminal using the established wireless connection or the established wired USB connection; and switching a host-slave relationship of the wired USB connection based on the obtained remaining battery level of the terminal and the obtained remaining battery level of the other terminal such that interruption of the sending of the to-be-transmitted data is avoided.