Heskey quits international football
"I've enjoyed every moment of my England career, I've worn the shirt with pride every time I've been fortunate enough to be selected," the 32-year-old Aston Villa player said in a statement.
"I wish the management team and the playing squad all the best for the future."
GEAR: Get a England shirt here
Heskey made 62 appearances for England, scoring just seven goals.
He drew a blank at the World Cup in South Africa, where he missed a golden opportunity to score in the opening 1-1 draw against the United States after setting up captain Steven Gerrard for the first goal.
Despite frequently misfiring in front of goal, the muscular striker found favour with various England managers including Fabio Capello for his work rate on the pitch and role as a foil for Wayne Rooney.
That proved ineffective at the World Cup, with Heskey starting against the United States and Algeria in the group stage before being dropped from the starting line-up against Slovenia.
He came on as a substitute in that final group game and in the subsequent 4-1 defeat by Germany in the last 16.
Heskey's chances of being selected in future had already faded, with Capello saying after his side's World Cup exit that he intended to inject fresh blood into a tired and ageing lineup.
"We will look to introduce new players to give the team new energy and I will use all my experience to take England forward," the manager said.
Heskey, who scored just three league goals for Villa last season, made his international debut under Kevin Keegan in a friendly against Hungary in 1999.
He played in the 2000 and 2004 European championships and the 2002 World Cup, but was dropped for three years until Steve McClaren gave him a recall in 2007.