私はアクセス権をユーザーに許可することができます。私はユーザーの連絡先にアクセスしたいので、2つのオプションの許可と拒否の例とソースコードのプロンプトを表示します。Android Marshmallow権限ですか?
-1
A
答えて
0
この
private void PerrmissionWork() {
List<String> permissionsNeeded = new ArrayList<String>();
final List<String> permissionsList = new ArrayList<String>();
if (!addPermission(permissionsList,
Manifest.permission.ACCESS_FINE_LOCATION))
permissionsNeeded.add("GPS");
if (!addPermission(permissionsList,
Manifest.permission.ACCESS_COARSE_LOCATION))
permissionsNeeded.add("GPS COARSE");
if (permissionsList.size() > 0) {
if (permissionsNeeded.size() > 0) {
// Need Rationale
String message = "You need to grant access to "
+ permissionsNeeded.get(0);
for (int i = 1; i < permissionsNeeded.size(); i++)
message = message + ", " + permissionsNeeded.get(i);
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
requestPermissions(permissionsList
.toArray(new String[permissionsList
.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
}
});
return;
}
requestPermissions(
permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
return;
}
splashMainWork();
}
// mapWork();
private boolean addPermission(List<String> permissionsList,
String permission) {
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(permission);
// Check for Rationale Option
if (!shouldShowRequestPermissionRationale(permission))
return false;
}
return true;
}
private void showMessageOKCancel(String message,
android.content.DialogInterface.OnClickListener onClickListener) {
new AlertDialog.Builder(context).setMessage(message)
.setPositiveButton("OK", onClickListener).setCancelable(false)
.setNegativeButton("Cancel", null).create().show();
}
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS: {
Map<String, Integer> perms = new HashMap<String, Integer>();
// Initial
perms.put(Manifest.permission.ACCESS_FINE_LOCATION,
PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.ACCESS_COARSE_LOCATION,
PackageManager.PERMISSION_GRANTED);
// Fill with results
for (int i = 0; i < permissions.length; i++)
perms.put(permissions[i], grantResults[i]);
// Check for ACCESS_FINE_LOCATION
if (perms.get(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
&& perms.get(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED
) {
// All Permissions Granted
splashMainWork();
} else {
// Permission Denied
Toast.makeText(context, "Some Permission is Denied",
Toast.LENGTH_SHORT).show();
}
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions,
grantResults);
}
}
のように行い、このように作成する上で、このメソッドを呼び出します。..
if (Build.VERSION.SDK_INT >= 23) {
PerrmissionWork();
} else {
splashMainWork();
}
を私はスプラッシュ作業方法で位置を取得し、あなたが接触permisssionを使用することができる場所の許可を使用していますし、スプラッシュ作業の代わりにあなたの連絡先コードを行う..とデモの多くも利用可能な彼らはあなたに良い説明を与えることができるGoogleを試してください..また、非常に良い説明が開発者も座っている。
here .. Try this blog very helpful
0
は、権限を要求に関する公式ドキュメントのhttps://developer.android.com/training/permissions/requesting.htmlをチェックしてください。このドキュメントを使用したサンプルクラスは次のとおりです。
public class PermissionCheck {
private void requestIfNeeded() {
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
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(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
// 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 MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
handleSuccessfulPermissionsRequest();
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
handlePermissionDenied();
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
private void handleSuccessfulPermissionsRequest() {
Toast.makeText(this, "Request Successful!",Toast.LENGTH_SHORT).show();
}
private void handlePermissionDenied() {
Toast.makeText(this, "Request Denied!",Toast.LENGTH_SHORT).show();
}
}
関連する問題
- 1. Runtime権限Marshmallow Android
- 2. Android Marshmallowで実行時の権限チェック
- 3. Android Marshmallow新しい権限のサポート
- 4. Android Marshmallow - 権限の状態の変更
- 5. marshmallowでロケーション権限を追加する
- 6. Android 6 Marshmallow権限が正しく動作しない
- 7. Androidのmarshmallowは、Appopで許可を与えた後、SYSTEM_ALERT_WINDOW権限の拒否エラー
- 8. 権限を要求する際の問題Marshmallow
- 9. Androidルート権限
- 10. Android Marshmallowで実行時にCLEAR_APP_CACHE権限を取得するにはどうすればよいですか?
- 11. Androidのカメラランタイムの権限エラーですか?
- 12. "Permissions Dispatcher"を使用してMarshmallow権限を追加する
- 13. android marshmallowで曲を再生するために必要な権限はありますか?
- 14. Android NDKネイティブ権限
- 15. Androidファイルの権限
- 16. Android用READ_EXTERNAL_STORAGE権限
- 17. Android gpsの権限
- 18. Marshmallowでの実行時の権限のポップアップクリックの問題更新されたデバイス
- 19. JUnitテスト用にAndroid Marshmallowのアクセス権を要求する方法
- 20. Android Marshmallow
- 21. 権限をプログラムで拒否する - Android
- 22. Androidの権限のリストAPI 23の通常の権限と危険な権限はありますか?
- 23. Androidエミュレータのsdcard権限
- 24. Android CALL_PHONE権限の問題
- 25. AndroidシステムアプリケーションDEVICE_POWER権限エラー
- 26. マニフェストのAndroidユーザー権限
- 27. Androidの画像権限
- 28. Marshmallowで実行されているアンドロイドアプリに権限を与える方法は?
- 29. Android 6.0(Marshmallow)READ_CONTACTS権限は、権限が拒否されたときに連絡先の名前を読み取ることを許可します。
- 30. Android - 別のクラスで権限を確認
回答ありがとうございます! –
@NightFury ..私の喜び.. – Ancee