Last active
November 27, 2017 16:00
-
-
Save arifix/4cf34ec0237721bd7a55e7a0f1d753c4 to your computer and use it in GitHub Desktop.
Android take Run-time Call Permission & Make Call
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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