Sri Lanka Cricket says that Silva was struck today during a match in Pallekele. His scans were clear, but he was flown to a hospital in the capital Colombo for further tests and observation, the cricket body added.
Silva has played 24 test matches for Sri Lanka and scored 1,404 runs at an average of 31.
The match was part of Sri Lanka's preparations for its tour of England next month.