Существуют ли файлы журналов для приложений Android в ОС Chrome? - PullRequest
0 голосов
/ 23 января 2020

Я занимаюсь разработкой приложения Android на своем Chromebook (Android Studio под Linux).

Программа отлично работает, когда я запрашиваю файл, который находится во внутренней памяти, но когда я пытаюсь при доступе к файлу на SD-карте происходит сбой. У меня есть права на чтение и запись для внешнего хранилища, указанные в манифесте приложения.

Поскольку я не могу запустить приложение в отладчике Android Studio на моем Chromebook, мне интересно, если Chrome ОС есть любые файлы журналов, которые могут содержать информацию о моем cra * sh.

Если это поможет, вот мой код:

package com.muddco.fl04;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.OpenableColumns;
import android.util.Log;
import android.widget.Toast;

import com.muddco.fl04.R;

public class MainActivity extends AppCompatActivity {

    static String TAG = "TEST123";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        openFile();
    }

    // Request code for selecting a PDF document.
    private static final int PICK_FILE = 2;

    private void openFile() {
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("*/*");

        startActivityForResult(intent, PICK_FILE);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode,
                                 Intent resultData) {
        if (requestCode == PICK_FILE
                && resultCode == Activity.RESULT_OK) {
            Uri uri = null;
            if (resultData != null) {
                uri = resultData.getData();
                dumpImageMetaData(uri);
            }
        }
        super.onActivityResult(requestCode,resultCode,resultData);
    }

    public void dumpImageMetaData(Uri uri) {

        Cursor cursor = getApplicationContext().getContentResolver()
                .query(uri, null, null, null, null, null);

        try {
            if (cursor != null && cursor.moveToFirst()) {

                // Note it's called "Display Name". This is
                // provider-specific, and might not necessarily be the file name.
                String displayName = cursor.getString(
                        cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
                Log.i(TAG, "Display Name: " + displayName);

                int sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE);
              String size = null;
                if (!cursor.isNull(sizeIndex)) {
                   size = cursor.getString(sizeIndex);
                } else {
                    size = "Unknown";
                }
                Log.i(TAG, "Size: " + size);
                Toast.makeText(this, "Display Name: " + displayName + " Size: " + size, Toast.LENGTH_LONG).show();
            }
        } finally {
            cursor.close();
        }
    }
}
...