0
私は、実行時のpermission.myコードの問題を抱えているのである。実行時アクセス許可に対するユーザーの応答まで、プログラムでどのように遅延することができますか?
public class MainActivity extends AppCompatActivity {
int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
ActivityCompat.requestPermissions(MainActivity.this, permissions, 0x3);
while (i == 0) {
//
}
//
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case 0x3:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(G.context, "allowed",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(G.context, "deney", Toast.LENGTH_LONG).show();
}
break; } }}
私は、ユーザーの応答許可後whlieブロックの実行をしたいです。ブロックは許可の結果を待つことはありません。実行時パーミッションに対するユーザーの応答まで、そしてwhlieと別の行を実行した後、どのようにプログラムを遅らせることができますか?
"実行時アクセス許可に対するユーザーの応答まで、そしてwhlieと別の行を実行した後、どのようにプログラムを遅らせることができますか?" - あなたはそうしない。あなたは 'onRequestPermissionResult()'で反応します。だから、あなたは何らかの方法でパーミッションを持っていれば、やりたいコードを分離することができます。すでに権限がある場合は 'onCreate()'から呼び出すか、権限を取得したら 'onRequestPermissionResult()'から呼び出してください。 – CommonsWare