Is there any way to check if a SIM is 3G only?
The easiest way is contacting SIM Operator
Or, you can set all bands, all RAT on devices (2G,3G,4G), insert that SIM and check that device is registered to 2G or 3G or 4G
By default, device will register to 4G first, if it is not available, then 3G, 2G.
After registered, you can check with COPS command or CREG/CGREG/CEREG? to know device is registered to which RAT.
+COPS: mode[,format,oper[,< AcT>]]
if AcT =0 -> 2G
AcT=2,3 -> 3G
AcT= 7 ->LTE…
I have a Verizon SIM that is 4G .
With “All Band” enabled it always tries to register with 3G and never attempts to register to 4G network.
SELRAT is set to “AUTO”
BAND 00, All bands 0002000007C00000 000000000000101A 0000000000000000
The only workaround I found is to have “4G only bands”.
09, LTE ALL 0000000000000000 000000000000101A 0000000000000000
What kind of setup will allow me “4G first, if it is not available, then 3G, 2G.”?
You cannot actually tell from the SIM standalone if it is 2G, 3G or LTE enabled. In theory it is possible to guess some of the functionality by looking at the presence of certain SIM fields but as jerdung has said it is just easier to ask the operator.