Created
October 25, 2017 12:16
-
-
Save bulentsiyah/d8e851b4e7ccd5e84a353024ced21bec to your computer and use it in GitHub Desktop.
Android Runtime Permission Kullanımı -- http://www.bulentsiyah.com/androids-runtime-multiple-permission/
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
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
tools:context="com.bulentsiyah.basitvezelletirilmilistviewkullanm.RuntimePermissionOrnegi"> | |
<Button | |
android:id="@+id/button" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignParentTop="true" | |
android:layout_centerHorizontal="true" | |
android:layout_marginTop="21dp" | |
android:onClick="btn_GaleriKamera" | |
android:text="Galeri ve Kamera İzinleri" /> | |
<Button | |
android:id="@+id/button2" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_marginTop="17dp" | |
android:onClick="buttonRehberdenSec" | |
android:text="Rehber Aç" | |
android:layout_below="@+id/button" | |
android:layout_centerHorizontal="true" /> | |
<Button | |
android:id="@+id/button3" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignLeft="@+id/button2" | |
android:layout_alignStart="@+id/button2" | |
android:layout_below="@+id/button2" | |
android:layout_marginTop="14dp" | |
android:onClick="buttonTumAyarlar" | |
android:text="Tüm İzinler" /> | |
<TextView | |
android:text="Denied Permission" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:id="@+id/textView2" | |
android:layout_below="@+id/button3" | |
android:layout_alignParentLeft="true" | |
android:layout_alignParentStart="true" /> | |
<TextView | |
android:text="0" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:id="@+id/textViewDeniedCount" | |
android:lines="10" | |
android:layout_below="@+id/textView2" | |
android:layout_alignParentLeft="true" | |
android:layout_alignParentStart="true" | |
android:layout_alignParentRight="true" | |
android:layout_alignParentEnd="true" /> | |
<TextView | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:text="Access Permission:" | |
android:id="@+id/textView" | |
android:layout_below="@+id/textViewDeniedCount" | |
android:layout_alignParentLeft="true" | |
android:layout_alignParentStart="true" /> | |
<TextView | |
android:text="0" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:id="@+id/textViewAccessCount" | |
android:lines="10" | |
android:layout_below="@+id/textView" | |
android:layout_alignParentLeft="true" | |
android:layout_alignParentStart="true" | |
android:layout_alignParentRight="true" | |
android:layout_alignParentEnd="true" /> | |
</RelativeLayout> |
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
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.bulentsiyah.basitvezelletirilmilistviewkullanm"> | |
<uses-permission android:name="android.permission.CAMERA" /> | |
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | |
<uses-permission android:name="android.permission.READ_CONTACTS" /> | |
<uses-permission android:name="android.permission.READ_CALL_LOG" /> | |
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> | |
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> | |
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:roundIcon="@mipmap/ic_launcher_round" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<activity android:name=".RuntimePermissionOrnegi"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
</activity> | |
<activity android:name=".BasitListViewActivity" /> | |
<activity android:name=".OzellestirilmisListViewActivity"></activity> | |
</application> | |
</manifest> |
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 com.bulentsiyah.basitvezelletirilmilistviewkullanm; | |
import android.Manifest; | |
import android.content.Context; | |
import android.content.Intent; | |
import android.content.pm.PackageManager; | |
import android.os.Build; | |
import android.provider.ContactsContract; | |
import android.support.v4.app.ActivityCompat; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.view.View; | |
import android.widget.TextView; | |
public class RuntimePermissionOrnegi extends AppCompatActivity { | |
final private int REQUEST_CODE_ASK_PERMISSIONS_Kamera = 123; | |
String[] PERMISSIONS_Kamera= {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
String[] PERMISSIONS_contacts = {Manifest.permission.READ_CONTACTS,Manifest.permission.READ_CALL_LOG,Manifest.permission.READ_PHONE_STATE}; | |
final private int REQUEST_CODE_ASK_PERMISSIONS_Rehber = 124; | |
TextView textViewAccessCount; | |
TextView textViewDeniedCount; | |
final private int REQUEST_CODE_ASK_PERMISSIONS_Tumu = 125; | |
int accessCount=0; | |
int deniedCount=0; | |
String accessList=""; | |
String deniedList=""; | |
String[] PERMISSIONS_Tumu = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.READ_CONTACTS,Manifest.permission.READ_CALL_LOG,Manifest.permission.READ_PHONE_STATE}; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_runtime_permission_ornegi); | |
textViewAccessCount = (TextView) findViewById(R.id.textViewAccessCount); | |
textViewDeniedCount = (TextView) findViewById(R.id.textViewDeniedCount); | |
accessList=""; | |
deniedList=""; | |
} | |
public void btn_GaleriKamera(View v){ | |
if (!hasPermissions(RuntimePermissionOrnegi.this, PERMISSIONS_Kamera)) { | |
ActivityCompat.requestPermissions(RuntimePermissionOrnegi.this, PERMISSIONS_Kamera, REQUEST_CODE_ASK_PERMISSIONS_Kamera); | |
return; | |
} | |
} | |
public static boolean hasPermissions(Context context, String... permissions) { | |
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) { | |
for (String permission : permissions) { | |
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { | |
return false; | |
} | |
} | |
} | |
return true; | |
} | |
void TextViewTextUptade() { | |
try { | |
textViewAccessCount.setText(accessCount+" "+accessList+""); | |
textViewDeniedCount.setText(deniedCount+" "+deniedList+""); | |
} catch (Exception exp) { | |
} | |
} | |
public void buttonRehberdenSec(View v) { | |
try { | |
if (!hasPermissions(RuntimePermissionOrnegi.this, PERMISSIONS_contacts)) { | |
ActivityCompat.requestPermissions(RuntimePermissionOrnegi.this, PERMISSIONS_contacts, REQUEST_CODE_ASK_PERMISSIONS_Rehber); | |
return; | |
} | |
Intent it = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI); | |
startActivityForResult(it, 100); | |
} catch (Exception exp) { | |
} | |
} | |
public void buttonTumAyarlar(View v) { | |
try{ | |
if (!hasPermissions(RuntimePermissionOrnegi.this, PERMISSIONS_Tumu)) { | |
ActivityCompat.requestPermissions(RuntimePermissionOrnegi.this, PERMISSIONS_Tumu, REQUEST_CODE_ASK_PERMISSIONS_Tumu); | |
return; | |
} | |
} catch (Exception exp) { | |
} | |
} | |
@Override | |
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { | |
switch (requestCode) { | |
case REQUEST_CODE_ASK_PERMISSIONS_Tumu: { | |
for ( int i=0;i< grantResults.length;i++ ){ | |
// If request is cancelled, the result arrays are empty. | |
if (grantResults.length > 0 && grantResults[i] == PackageManager.PERMISSION_GRANTED) { | |
accessCount++; | |
accessList+="\n"+permissions[i]; | |
// Permission Granted | |
} else { | |
deniedCount++; | |
deniedList+="\n"+permissions[i]; | |
// Permission Denied | |
} | |
} | |
TextViewTextUptade(); | |
return; | |
} | |
// other 'case' lines to check for other | |
// permissions this app might request | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment