scan for available address of the device cause what if the device is only capable of transmitting via SPI only.
There is no "SPI address". The SPI bus uses three common lines.
MOSI = Master Out - Slave In
MISO = Master In - Slave Out
SCLK = Clock
Then it uses a unique line for each device, and the "address" is determined by the slave select (SS) line. That line could be any digital pin. You can't effectively poll every digital pin. That could damage other equipment connected to those digital pins. You know the device "SPI address" of each device because you determine which digital pin the slave select is connected to, or the shield specifies which pins the slave selects are connected to.
The I2C bus is different. It uses two pins, and all devices connect to those pins, and each device responds to a specific address on that bus.