Skip to content

Instantly share code, notes, and snippets.

@arifix
Last active November 27, 2017 16:00
Show Gist options
  • Save arifix/4cf34ec0237721bd7a55e7a0f1d753c4 to your computer and use it in GitHub Desktop.
Save arifix/4cf34ec0237721bd7a55e7a0f1d753c4 to your computer and use it in GitHub Desktop.
Android take Run-time Call Permission & Make Call
package khan.arif.practise;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private Button call;
private EditText number;
private int REQUEST_CALL_PHONE = 34;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number = (EditText) findViewById(R.id.number);
call = (Button) findViewById(R.id.call);
call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
makeCall();
}
});
}
public void makeCall(){
String tel = "tel:" + number.getText().toString();
Intent call = new Intent(Intent.ACTION_CALL);
call.setData(Uri.parse(tel));
if (ActivityCompat.checkSelfPermission(Main2Activity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(Main2Activity.this, new String[]{Manifest.permission.CALL_PHONE}, REQUEST_CALL_PHONE);
return;
}
startActivity(call);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == REQUEST_CALL_PHONE){
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
makeCall();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment