He was in tears at a presentation before Germany's 2-0 friendly win over Finland in Monchengladbach.
The Manchester United midfielder, 32, made his Germany debut in June 2004 and ends his international career with 121 caps and 24 goals.
"It means so much that you're here today. It has been an honour to play for you," he told the crowd.
"I think you all saw how it affected me. I had just wanted to enjoy every moment, but I hadn't expected it to be so lovely."
Schweinsteiger, who was substituted to a standing ovation after 66 minutes, holds the German record for European Championship appearances, having played 18 times at the tournament.
He was part of Germany's 2014 World Cup-winning squad and retires as Germany's fourth most-capped player of all time.
Schweinsteiger, who this week denied he had a problem with new United manager Jose Mourinho, said he wanted to play for the Reds again despite being left out of their first-team squad.
"I have a contract with United until 2018 and it's my dream to run out there again," he added.
"I love football still too much and that means being on the field, playing, and that is what I am thinking about."
Manchester United captain and team-mate Wayne Rooney tweeted his congratulations on a "special international career", while former Germany international Didi Hamann described Schweinsteiger as "one of the all-time greats".
An emotional Germany captain Bastian Schweinsteiger has played his final international game.