Android 개발 호출 외부 응용 프로그램에서 지정된 파일 열기

1905 단어 Android
의도 Intent의 Action 값을 ACTION으로 설정합니다.GET_CONTENT,
Cateldory는 CATEGORY 입니다.OPENABLE,
Type은 "*/*"로 모든 파일 유형을 나타냅니다.
여기에는 읽기 및 쓰기 권한을 동적으로 신청해야 합니다.
        if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(this,new String[]{ "Manifest.permission.WRITE_EXTERNAL_STORAGE"},1);
        }
        Intent intent=new Intent();
        intent.setAction(Intent.ACTION_GET_CONTENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("*/*");
        startActivityForResult(intent,1);

startActivityForResult의 리셋 방법에서 OpenFiles(Context context, Uriuri) 방법을 실행합니다
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Uri uri;
        if(resultCode== Activity.RESULT_OK){
            if(requestCode==1){
                uri=data.getData();
                openFile(this,uri);
            }
        }
    }

의도된 Flags 값을 FLAG 로 설정합니다.ACTIVITY_NEW_TASK,
Action 값은 ACTION 입니다.VIEW,
Data는 첫 번째 Intent에서 얻은 Uri입니다.
마지막으로 Intent의 정적 방법createChooser(Context context, Uri,uri) 팝업을 통해 외부 응용 프로그램을 선택하여 파일을 엽니다.
    public void openFile(Context context,Uri uri){
        try{
            Intent intent = new Intent();
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setAction(Intent.ACTION_VIEW);
            intent.setData(/*uri*/uri);
            context.startActivity(intent);
            Intent.createChooser(intent, "             !");
        }catch (ActivityNotFoundException e) {
            Toast.makeText(context, "sorry      ,       !", Toast.LENGTH_SHORT).show();
        }
    }

좋은 웹페이지 즐겨찾기