0

我目前正在使用 AIDE 做缺乏计算机,并且我在使用几个类时遇到了问题,我很确定这与 androidx 库和 AIDE 有关,我看到其他人也有类似的问题在这里,无法访问 'androidx.activity.result.ActivityResultCaller',仅对我来说,我得到 ActivityResult、ActivityResultCallback、ActivityResultContract、ActivityResultLauncher、ActivityCompat 和来自所述类的一些方法以及 ActivityResultCaller 接口的“未知实体”,以及那个人的问题的解决方案对我不起作用,任何建议,这是我的 build.gradle 和 MainActivity,我有一些东西被注释掉了,我一直在搞乱依赖关系

apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        applicationId "com.mycompany.MyApp"
        minSdkVersion 30
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation ('android.arch.core:runtime:+') {
       force = true
}
    implementation 'androidx.activity:activity:1.4.0'
   //implementation 'com.android.support:support-v4:23.+'
    //implementation 'com.android.support:appcompat-v7:22.1.0'
    implementation 'com.android.support:appcompat-v7:27.+'
    //implementation 'androidx.appcompat:appcompat:1.2.0'
     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation "androidx.core:core-ktx:1.3.1"
     implementation 'androidx.appcompat:appcompat:1.3.0-alpha01'
}

这是 MainActivity

package com.mycompany.MyApp;

import android.app.*;

import android.os.*;
import android.view.Window;
import android.view.WindowManager;
import android.support.v4.content.*;
import android.content.Context;
import androidx.activity.*;
import android.provider.*;
//import androidx.core.app.*;
import android.content.Intent;
import android.net.Uri;
import android.content.pm.*;
//import androidx.activity.result.contract.*;
//import androidx.activity.*;
import android.provider.*;
import java.security.*;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.*;

public class MainActivity extends AppCompatActivity{

    public static String PACKAGE_NAME;
    String[] permissions = {android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE};
    public static MainActivity instance;
    
    public ActivityResultLauncher<Intent> activityResultLauncher;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
       
        activityResultLauncher =
    
        registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>(){
         @Override
         public void onActivityResult(ActivityResult result){
             
         }
       
    });
        setContentView(  new Game(this));
        PACKAGE_NAME = getApplicationContext().getPackageName();
        
    }
    private boolean checkPermission(){
        if (Build.VERSION.SDK_INT >= 23) {
            if (ActivityCompat.checkSelfPermission(requireContext(), permissions) != PackageManager.PERMISSION_GRANTED) {

                getPermission.launch(permissions);
            }
        }
        
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
            return Environment.isExternalStorageManager();
        }
        else{
            int checkRead = ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.READ_EXTERNAL_STORAGE);
            int checkWrite = ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
            return checkRead == PackageManager.PERMISSION_GRANTED && checkWrite == PackageManager.PERMISSION_GRANTED;
        }
    }
    
    @Override
    public void startActivityForResult(Intent intent, int requestCode)
    {
        super.startActivityForResult(intent, requestCode);
    }
    /
    private ActivityResultLauncher<Intent> requestPermissionLauncher =
    registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>(){
        @Override
        public void onActivityResult(ActivityResult result){
            
        }
    });
    public void requestPermissions(){
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R){
            try{
                Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
                intent.addCategory("android.intent.category.DEFAULT");
            intent.setData(Uri.parse(String.format("package:%s", new Object[]{PACKAGE_NAME})));
                requestPermissionLauncher.launch(intent);

            }catch(Exception e){
                Intent intent = new Intent();
                intent.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
                activityResultLauncher.launch(intent);
            }
        }
        else{
            ActivityCompat.requestPermissions(this, permissions, 30);
        }
    }
    
}
4

0 回答 0