La méthode checkSelfPermission(Context, String) n'est pas défini pour le type ContextCompat
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Context context = (Permission) this;
//In an actual app, you'd want to request a permission when the user
//performs an action
//that requires that permission.
if (Build.VERSION.SDK_INT >= 23) {
getPermissionToReadUserContacts();
}
}
//Identifier for the permission request
private static final int READ_CONTACTS_PERMISSIONS_REQUEST = 1;
//Called when the user is performing an action which requires the app to
//read the
//user's contacts
public void getPermissionToReadUserContacts() {
//1) Use the support library version
//ContextCompat.checkSelfPermission(...) to avoid
//checking the build version since Context.checkSelfPermission(...) is
//only available
//in Marshmallow
//2) Always check for permission (even if permission has already been
//granted)
//since the user can revoke permissions at any time through Settings
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
//Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.READ_CONTACTS)) {
//Show an expanation to the user *asynchronously* -- don't
//block
//this thread waiting for the user's response! After the user
//sees the explanation, try again to request the permission.
} else {
//No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(this,
new String[] { Manifest.permission.READ_CONTACTS },
READ_CONTACTS_PERMISSIONS_REQUEST);
//MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
//app-defined int constant. The callback method gets the
//result of the request.
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case READ_CONTACTS_PERMISSIONS_REQUEST: {
//If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "Read Contacts permission granted",
Toast.LENGTH_SHORT).show();
//permission was granted, yay! Do the
//contacts-related task you need to do.
} else {
Toast.makeText(this, "Read Contacts permission denied",
Toast.LENGTH_SHORT).show();
//permission denied, boo! Disable the
//functionality that depends on this permission.
}
return;
}
//other 'case' lines to check for other
//permissions this app might request
}
}
//Callback with the request from calling requestPermissions(...)
/*
* @Override public void onRequestPermissionsResult(int requestCode, String
* permissions[], int[] grantResults) { //Make sure it's our original
* READ_CONTACTS request if (requestCode ==
* READ_CONTACTS_PERMISSIONS_REQUEST) { if (grantResults.length == 1 &&
* grantResults[0] == PackageManager.PERMISSION_GRANTED) {
* Toast.makeText(this, "Read Contacts permission granted",
* Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this,
* "Read Contacts permission denied", Toast.LENGTH_SHORT).show(); } } else {
* super.onRequestPermissionsResult(requestCode, permissions, grantResults);
* } }
*/
Quand j'ai essayer ceci dans une démo application, elle fonctionne bien.Mais quand je inclure dans le projet, il est en train de jeter une erreur que le titre.Toute aide sera appréciée.C'est à cause du contexte, je pense que oui.
..........................................................................................................................................................................................................................................................................................................................................................
l'utilisation de la compilation com.android.support:appcompat-v7:23.0.1'
OriginalL'auteur Naresh Reddy | 2016-01-05
Vous devez vous connecter pour publier un commentaire.
ContextCompat.checkSelfPermission()
nécessite la prise en charge de la bibliothèque dans la version 23 ou plus.Ajouter dans
dependencies
bloc de niveau inférieurbuild.gradle
:Si vous avez la version précédente ici (que vous avez probablement), vous devez remplacer la ruelle, fournies par moi.
J'ai résolu mon propre problème. Je n'étais pas de l'importation de la nouvelle version de android-support-v4.jar ainsi. Google a procédé à de nombreux changements .jar depuis la dernière fois que je l'ai tiré dans mon projet.
pouvez-vous me donner jar Lien donc,je peux intégrer runtime permition à l'aide d'eclipse?
Vous devez télécharger la bibliothèque à l'aide du kit SDK d'Android et de l'importer ensuite sur votre propre - developer.android.com/topic/libraries/support-library/...
OriginalL'auteur Damian Kozlak
Ce problème se produit parce que le soutien de la bibliothèque est hors de date.
Si vous utilisez Eclipse, j'ai trouvé la solution la plus simple est de cliquer droit sur le projet et allez à:
Android Tools > Add support library...
Si cela ne résout pas le problème, vous avez probablement besoin de mettre à jour le SDK d'abord:
Window > Android SDK Manager > Install Updates
La bibliothèque de prise en charge seront ajoutés ou mis à jour et ne plus afficher ce message d'erreur.
OriginalL'auteur Higher Coding
Vous pouvez définir la cible android de votre projet pour android 6.0 ou supérieur. Puis ajouter android-support-v4.jar
OriginalL'auteur Tru Nguyen