私は以下のようなjavaクラスを持っています。複数のパーミッション
public class PermisssionAction {
public static void requestPermission(Activity activity, String permission) {
if (ContextCompat.checkSelfPermission(activity, permission)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{permission}, 0);
}
}
}
私はmainactivityでそのメソッドを呼び出して、以下のようにappのアクセス権を取得しました。
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
PermisssionAction.requestPermission(this, Manifest.permission.READ_PHONE_STATE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
PermisssionAction.requestPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
}
PermisssionAction.requestPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
PermisssionAction.requestPermission(this, Manifest.permission.READ_CONTACTS);
PermisssionAction.requestPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION);
PermisssionAction.requestPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
PermisssionAction.requestPermission(this, Manifest.permission.READ_SMS);
PermisssionAction.requestPermission(this, Manifest.permission.INTERNET);
PermisssionAction.requestPermission(this, Manifest.permission.BLUETOOTH);
PermisssionAction.requestPermission(this, Manifest.permission.ACCESS_WIFI_STATE);
PermisssionAction.requestPermission(this, Manifest.permission.SEND_SMS);
Intent startupintent = new Intent(MainActivity.this, StartupActivity.class);
startActivity(startupintent);
finish();
}
}
は今、私はそれがエミュレータで一度にすべての許可を求める一方で、それは、本当のモバイル上でアプリを実行している間だけ許可を求める理由を理解することはできませんメートル。 また、アプリが最初にロケーション権限を取得したとします。アプリを再度開いても、実際のデバイスで保留中の別の権限が尋ねられます。できますか?
を参照してください。ただし、方法を詳しく見てもわかるように、リクエストする前に私も許可を確認しています。唯一の違いは、私は配列の代わりに一つずつ質問しています。 –