Hi,
I need to detect the following colors: black,white,green, aluminum foil(shiny tape)
Black is NOT a color, but absense of light.
White is "all colors" concurrently.
Aluminum foil couldn't really be called a color either, since it's more like "pure" reflection.
can I use only two and get acceptable readings?
Depends on what you find acceptable.
Also what color leds for me -- red and green?
That would enable you to single out the green at least (green LED => reflectance, red LED => absorption), black should be OK as well (as long as you won't have to take any other colors than green into consideration) but the aluminum foil would read like the white, only the intensity of reflection will differ.
Aluminum foil could be tested by contact (since it conducts).