2017-08-14 94 views
1

SmsRetriever.SMS_RETRIEVED_ACTION未被調用。我使用的火力地堡電話驗證:SMS Retriever API未從Firebase電話調用SMS_RETRIEVED_ACTION驗證

PhoneAuthProvider.getInstance().verifyPhoneNumber(
       mPhoneNumber,  // Phone number to verify 
       60,     // Timeout duration 
       TimeUnit.SECONDS, // Unit of timeout 
       activity,    // Activity (for callback binding) 
       mCallbacks);  // OnVerificationStateChangedCallbacks 

,我試圖用SMS Retriever API

SmsRetrieverClient client = SmsRetriever.getClient(activity); 

// Starts SmsRetriever, which waits for ONE matching SMS message until timeout 
// (5 minutes). The matching SMS message will be sent via a Broadcast Intent with 
// action SmsRetriever#SMS_RETRIEVED_ACTION. 

Task<Void> task = client.startSmsRetriever(); 

task.addOnSuccessListener(new OnSuccessListener<Void>() { 
      @Override 
      public void onSuccess(Void aVoid) { 

      } 
     }); 

     task.addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception e) { 

      } 
     }); 

我註冊的BroadcastReceiver的onResume檢索短信和註銷它暫停:

public class MySMSBroadcastReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    if (SmsRetriever.SMS_RETRIEVED_ACTION.equals(intent.getAction())) { 
     Bundle extras = intent.getExtras(); 
     Status status = (Status) extras.get(SmsRetriever.EXTRA_STATUS); 

     switch(status.getStatusCode()) { 
      case CommonStatusCodes.SUCCESS: 
       // Get SMS message contents 
       String message = (String) extras.get(SmsRetriever.EXTRA_SMS_MESSAGE); 

       break; 
      case CommonStatusCodes.TIMEOUT: 

       break; 
     } 
    } 
} 
} 

莫非成爲Firebase SMS格式?可能不兼容?

在此先感謝。

回答

0

使用下面的依賴,然後再試一次

編譯 'com.google.android.gms:發揮服務-AUTH-API電話:11.0.4'