Skip to content

Latest commit

 

History

History
146 lines (130 loc) · 4.07 KB

File metadata and controls

146 lines (130 loc) · 4.07 KB

Mobtexting Missedcall Phone Number Verification

Easy to integrate android sdk to verify phone number from Mobtexting

Getting Started

Gradle

Step 1. Add the JitPack repository to your build file

allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}

Step 2. Add the dependency

dependencies {
  implementation 'com.github.mobtexting:missedcallverification-android:v1.0.0'
}

Define API KEY in Manifest file inside Application tag

  <meta-data android:name="mobtexting.api_key" android:value="@string/mobtextingapikey" />

Usage (How to verify phone number using missed call)

Step 3. implement VerificationInterface in Activity or fragment and implement the methods.

public class MainActivity extends AppCompatActivity implements VerificationInterface{

    private Button btnVerify;
    private ProgressDialog pd;
    private MissedCallReceiver receiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnVerify = (Button) findViewById(R.id.btnVerify);
        
        
    }
    
    @Override
    public void onResponse(ServerResponse serverResponse) {
        
    }
    
    @Override
    public void onError(ServerResponse serverResponse) {
        
    }
    
    @Override
    public void missedCallReceived(boolean b, String s) {
        
    }
 }

Step 4. recomanded to register the receiver and initiate the call from dialer

btnVerify.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //recomanded to receiver receiver
        registerReceiver();
        performDial("123"); //pass the missed call number (whom to dial)
    }
});

/**
* perform dial to particular number
* @param numberString
*/
private void performDial(String numberString) {
   if (!numberString.equals("")) {
     Uri number = Uri.parse("tel:" + numberString);
     Intent dial = new Intent(Intent.ACTION_CALL, number);
     //check the permission (recomanded to check the permission)
     if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) !=                      PackageManager.PERMISSION_GRANTED) {
     return;
   }
   startActivity(dial);
 }
}
   
   /**
    * register receiver for outgoing call and phone state
    */
private void registerReceiver() {
 IntentFilter intentFilter = new IntentFilter();
 intentFilter.addAction("android.intent.action.PHONE_STATE");
 intentFilter.addAction("android.intent.action.NEW_OUTGOING_CALL");
 //create object of MisscallReciver and the **context** or **this** as parameter
 receiver = new MissedCallReceiver(this);
 registerReceiver(receiver, intentFilter);
}

Step 5. recomanded to unregister the receiver

@Override
protected void onDestroy() {
   //recomanded to unregister the receiver
   unRegisterReceiver();
   super.onDestroy();
}
   
/**
* recomanded to unregister the receiver
*/
private void unRegisterReceiver() {
   if (receiver != null) {
     Log.d("activity", "broadcast receiver unregistered");
     MainActivity.this.unregisterReceiver(receiver);
     receiver = null;
   } else {
     Log.d("activity", "broadcast receiver not unregistered");
   }
}

Step 6. after performing a dial, it will invoked inside missedCallReceived override method (after missedcall automatially will disconnect)

//dial a number from activity and call back with dialed number
 @Override
public void missedCallReceived(boolean b, String s) {
  if (b) {
    //perform mobile numer verification verification 
    MobtextingServices.sendDataToService(this, "verfifcation_number", "missed_call_number", new MobtextingInfoResult(this));
  } else {
    unRegisterReceiver();
  }
}

// we will get server response from mobtexting
@Override
public void onResponse(ServerResponse serverResponse) {
  //do whatever you want        
}
    
@Override
public void onError(ServerResponse serverResponse) {
  //do whatever you want      
}