2016-05-20 12 views
1

マシュマロのサポートを既存のアプリケーションに追加する方法を知っている人はいますか?実行時にパーミッションをチェックする方法、または実行時にパーミッションをチェックするコードを書く方法。そのコードはどこのアプリケーションで書かれていますか?既存のマシュマロアプリケーションにマシュマロのサポートを追加するには

public class AppPermission { 

    public static boolean isMarshmallowPlusDevice() { 
     return Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1; 
    } 

    @TargetApi(Build.VERSION_CODES.M) 
    public static boolean isPermissionRequestRequired(Activity activity, @NonNull String[] permissions, int requestCode) { 
     if (isMarshmallowPlusDevice() && permissions.length > 0) { 
      List<String> newPermissionList = new ArrayList<>(); 
      for (String permission : permissions) { 
       if (PackageManager.PERMISSION_GRANTED != activity.checkSelfPermission(permission)) { 
        newPermissionList.add(permission); 
       } 
      } 
      if (newPermissionList.size() > 0) { 
       activity.requestPermissions(newPermissionList.toArray(new String[newPermissionList.size()]), requestCode); 
       return true; 
      } 
     } 
     return false; 
    } 
} 

をそしてあなたは後USER-

if (!AppPermission.isPermissionRequestRequired(MyActivity.this, new String[]{"android.permission.GET_ACCOUNTS"}, 
     REQUEST_APP_PERMISSION)) { 
    // Your code if permission available 
} 

からの許可を必要とし、このコードを配置 -

+0

downvoted誰でも、コメントすることを気にしてください! – TechSpellBound

答えて

0

は、実行時のアクセス許可のために、私は普遍的で、どこからでも使用することができ、このクラスを作成しましたあなたのFragmentまたはActivityにこのコードを入れてください -

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    switch (requestCode) { 
     case REQUEST_APP_PERMISSION: 
      for (int i = 0; i < permissions.length; i++) { 
       String permission = permissions[i]; 
       int grantResult = grantResults[i]; 
       switch (permission) { 
        case "android.permission.GET_ACCOUNTS": 
         if (PackageManager.PERMISSION_GRANTED == grantResult) { 
          // Your code 
         } 
         break; 
       } 
      } 
      break; 
    } 
} 

上記のコードは、GET_ACCOUNTSの許可のためのもので、必要に応じて変更することができます。

0
あなたはMarshmellowのために公式ドキュメントを参照することができ

使用許可を与えるこのドキュメントを1としてhttps://developer.android.com/training/permissions/requesting.html

は、アンドロイド6.0(マシュマロ)で導入された機能ですので、私はその可能ではないかと思います以前のバージョン。

ただし、ユーザーがCyanogenModまたはMIUIの携帯電話を使用している場合は、ストックアプリの許可モデルをラップし、動的な権限を可能にするアプリがあります。

0
First check if the device is Android 6.0 by using below code 

here is the example of read contacts 

if(Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1){ 

// here check wheather runtime permission is granted or not 
if (ContextCompat.checkSelfPermission(thisActivity, 
       Manifest.permission.READ_CONTACTS) 
     != PackageManager.PERMISSION_GRANTED) { 
// ask for permission 
ActivityCompat.requestPermissions(thisActivity, 
       new String[]{Manifest.permission.READ_CONTACTS}, 
       MY_PERMISSIONS_REQUEST_READ_CONTACTS); 
} 
else 
return; 
} 
Don't forget to define permission in manifest fileYou can check permission in Home Screen please follow the link below 

https://developer.android.com/training/permissions/requesting.html 

https://www.captechconsulting.com/blogs/runtime-permissions-best-practices-and-how-to-gracefully-handle-permission-removal

関連する問題