Android 에서 Bmob 로 문자 인증 코드 기능 을 실현 하 는 방법 에 대한 상세 한 설명

이 글 은 주로 인증 코드 와 검증 코드 를 보 내 는 기능 을 소개 하 는데 제3자 플랫폼 인 Bmob 를 사용 합 니 다.그러면 Bmob 는 무엇 입 니까?Bmob 는 클 라 우 드 에 저 장 된 모 바 일 애플 리 케 이 션 을 개발 할 수 있 습 니 다.그 는 대량의 표준 API 인 터 페 이 스 를 제 공 했 습 니 다.필요 에 따라 관련 서 비 스 를 접속 하면 개발 자 는 응용 개발 에 더욱 전념 하여 제품 을 더욱 신속하게 전달 할 수 있 습 니 다.인증 코드 기능 은 바로 그 중의 하나 입 니 다.
1.다른 제3자 와 마찬가지 로 우 리 는 개발 하기 전에 준 비 를 해 야 합 니 다.
1.우선,홈 페이지 에 계 정 을 등록 합 니 다http://www.bmob.cn/
2.그리고 응용 프로그램 을 만 들 수 있 습 니 다.구체 적 으로 어떻게 해 야 하 는 지 잘 알 겠 습 니 다.(공식 조작 소개)보고 싶 지 않 으 면 저 는 간단하게 말씀 드 리 겠 습 니 다.오른쪽 상단 에 있 는'나의 콘 솔'을 클릭 하고 들 어간 후에'응용 프로그램 만 들 기'를 클릭 합 니 다.그림 과 같 습 니 다.

그 다음 에 응용 이름 을 작성 하고 아래 의 근 거 를 선택 하 며 무엇 을 선택 할 지 모 르 면 맨 아래 의 다른 것 을 선택 하면 됩 니 다.그림 과 같 습 니 다.

3.Application ID 와 REST API Key 가 져 오기;왼쪽 아래 설정 을 누 르 면 오른쪽 에 응용 키 가 있 습 니 다.

시스템 은 네 개의 값 을 생 성 해 줍 니 다.다음 과 같이 설명 합 니 다.그 중에서 Application ID 는 초기 화 할 때 사용 해 야 합 니 다.
애플 리 케 이 션 ID,SDK 초기 화 는 이 키 를 사용 해 야 합 니 다.
REST API Key,REST API 요청 에서 HTTP 헤더 정 보 는 키 중 하 나 를 추가 해 야 합 니 다.
Secret Key 는 SDK 보안 키 로 누설 할 수 없습니다.클 라 우 드 논리 테스트 클 라 우 드 코드 에 사용 해 야 합 니 다.
마스터 키,슈퍼 권한 키.개발 또는 디 버 깅 을 사용 할 때 이 키 를 사용 하여 여러 권한 을 조작 할 수 있 습 니 다.이 키 는 누설 할 수 없습니다.
4.문자 인증 코드 모델 을 만 들 고 심 사 를 통과 한 후에 사용자 정의 문자 템 플 릿 만 사용 할 수 있 습 니 다.만약 에 사용자 정의 문자 템 플 릿 의 상태 가 심사 중이 나 심사 에 실패 하면 이 방법 을 사용 하면 기본 템 플 릿 으로 인증 코드 를 보 냅 니 다.개발 자가 문자 인증 코드 템 플 릿 을 제출 할 때 다음 과 같은 몇 가 지 를 주의해 야 합 니 다.
1)、템 플 릿 에【】와[]가 있어 서 는 안 됩 니 다.그렇지 않 으 면 심사 에 통과 하지 못 합 니 다.
2)만약 에 당신 이 제출 한 문자 템 플 릿 이 발송 되 지 않 으 면 민감 한 감시 단 어 를 포함 할 수 있 습 니 다.구체 적 으로(원본 코드 와 함께 보 내 겠 습 니 다)를 조회 하여 제출 내용 이 합 법 적 인지 확인 하 겠 습 니 다.
3)하루 에 한 번 씩 같은 핸드폰 번호 로 보 내 는 문자 메 시 지 는 10 개 를 초과 해 서 는 안 됩 니 다.그렇지 않 으 면 10010 오류 가 발생 하고 다른 오류 코드 는 볼 수 있 습 니 다.문자 기능 과 관련 된 오류 코드 입 니 다.
사용자 정의 서명 지원.주:공식 서명 은 독립 된 채널 에 속 하고 사용자 정의 서명 은 공유 채널 에 속 하 며 문자 수신 속도 와 안정성 에 차이 가 있 을 수 있 습 니 다.
문자 서명 이란 문자 내용 에 포 함 된 이름 으로 서명 글자 수 는 3~8 글자 이 며 문자 가 아 닌 문자 가 있어 서 는 안 된다.
템 플 릿 내용 은 3 개의 변 수 를 지원 합 니 다:%appname%(작성 한 응용 이름),%smscode%(통 생 성 된 6 비트 인증 코드),%ttl%(인증 코드 유효 시간,단 위 는 분).
변 수 를 사용 할 필요 가 없다 면'%'를 추가 하지 않 고 실제 이름 을 직접 작성 하면 된다.
나 는 오늘 3 개의 심사 에 통과 하지 못 한 것 을 만 들 었 는데 궁금 했다.나중에 나 는 위 에 있 는 이 몇 가 지 를 보고 나 서 야 잘못 을 발견 했다.아래 그림 처럼 심사 에 통과 하지 못 한 것 이다.

5.문자 인증 코드 를 다운로드 한 SDK 를 다운로드 한 결과 안에 jar 가방 이 하나 밖 에 없 음 을 알 수 있 습 니 다.
메모:각 Bmob 계 정 에는 10 개의 무료 한도 의 문자 수량 이 테스트 에 사용 되 며,문자 메 시 지 를 구 매 해 야 계속 사용 할 수 있 습 니 다.
2.그 다음 에 클 라 이언 트 의 코드 를 쓰기 시 작 했 습 니 다.그 전에 크로스 오 버 카운트다운 에 관 한 글 을 썼 습 니 다.하지만 배치 도 간단 하 다.관건 은 아래 다.
1.jar 패 키 지 를 가 져 옵 니 다.제 가 앞에서 쓴 글 은 Android Studio 가 jar 패 키 지 를 가 져 오 는 것 에 관 한 글 입 니 다.(링크:Android Studio 에서 jar 패 키 지 를 가 져 옵 니 다(andbase.jar 를 예 로 들 면)여 기 는 간단하게 가 져 옵 니 다.jar 파일 을 libs 디 렉 터 리 아래 에 놓 고 항목 을 오른쪽 클릭 하고 open module settings 를 선택 한 다음 APP 를 선택 한 후 오른쪽 dependencies 를 클릭 한 다음 오른쪽 상단 에 있 는 추가 번 호 를 클릭 하고 두 번 째 File dependenc 를 선택 하면 창 이 팝 업 됩 니 다.아까 jar 가방 을 선택 하고 마지막 으로 OK,OK 를 누 르 십시오.
2.SMS 초기 화.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
mContext = this; 
Log.e(TAG, "onStart     "); 
// SMS    
BmobSMS.initialize(mContext, "    ?        Application ID"); 
init(); 
} 
3.버튼 을 누 르 면 문자 인증 코드 를 보 내 달라 고 요청 합 니 다.먼저 포석 을 봅 시다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 
<EditText 
android:id="@+id/activity_main_et_phone" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:inputType="phone" 
android:hint="       "/> 
<Button 
android:id="@+id/activity_main_btn_countdown" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_below="@id/activity_main_et_phone" 
android:layout_margin="8dp" 
android:layout_centerHorizontal="true" 
android:background="@drawable/shape" 
android:textColor="@color/white" 
android:text="@string/countdown"/> 
<EditText 
android:id="@+id/activity_main_et" 
android:layout_below="@id/activity_main_btn_countdown" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:hint="      "/> 
<Button 
android:id="@+id/activity_main_btn_send" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_margin="8dp" 
android:layout_centerHorizontal="true" 
android:layout_below="@id/activity_main_et" 
android:background="@drawable/shape" 
android:textColor="@color/white" 
android:text="@string/send"/> 
</RelativeLayout> 

"인증 코드 가 져 오기"단추 에 클릭 이벤트 설정:카운트다운 과 문자 인증 코드 보 내기 요청

btnCountdown.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
//             
btnCountdown.setEnabled(false); 
//          
startService(mIntent); 
//   requestSMSCode                           
BmobSMS.requestSMSCode(mContext, etPhone.getText().toString(), "  ", new RequestSMSCodeListener() { 
@Override 
public void done(Integer smsId, BmobException ex) { 
if (ex == null) {//        
Log.e("bmob", "  id:" + smsId);//             
} 
} 
}); 
} 
}); 

인증 코드

<pre name="code" class="java">btnSend.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
String number = etNumber.getText().toString(); 
if (!TextUtils.isEmpty(number)){ 
<span style="white-space:pre"> </span>//   verifySmsCode            
BmobSMS.verifySmsCode(mContext,etPhone.getText().toString(), number, new VerifySMSCodeListener() { 
@Override 
public void done(BmobException ex) { 
if(ex==null){//           
Log.e("bmob", "    "); 
}else{ 
Log.e("bmob", "    :code ="+ex.getErrorCode()+",msg = "+ex.getLocalizedMessage()); 
} 
} 
}); 
} 
} 
}); 

AndroidManifest.xml 에 권한 을 추가 하 는 것 을 잊 지 마 세 요:

<!--     --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<!--  GSM(2g)、WCDMA(  3g)         --> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!--  wifi        --> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
나의 예 는 여기까지 썼 지만,또 하나의 지식 은 문자 발송 상 태 를 조회 하 는 것 이다.제 가 홈 페이지 에 붙 여 드릴 게 요.

//   querySmsState       smsId      
BmobSMS.querySmsState(context, smsId, new QuerySMSStateListener() { 
@Override 
public void done(SmsState state, BmobException ex) { 
if(ex==null){ 
Log.i("smile","    :"+state.getSmsState()+",    :"+state.getVerifyState()); 
} 
} 
}); 
주의:SmsState 는 두 가지 상 태 를 포함 합 니 다:
1.smsState(문자 상태):SUCCESS(발송 성공),FAIL(발송 실패),SENDING(발송 중).
2.verify State(검증 상태):true(검증 되 었 음),false(검증 되 지 않 음).
위 에서 말 한 것 은 편집장 이 소개 한 안 드 로 이 드 에서 Bmob 로 문자 인증 코드 기능 을 실현 하 는 방법 에 대한 상세 한 설명 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기