この記事は Androidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Java での開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Android のアプリ開発でお役にたててれば、嬉しいです。
(これから Android のアプリ開発や Java での開発を始めたい方への案内は、記事の最後で紹介します)
SIMフリーのモバイルWiFiを検討していならこれがオススメです。
ポイント
Storage Access Framework(SAF)を使用することで、共有ストレージのファイルにアクセスすることができます。
ファイル作成の場合はACTION_CREATE_DOCUMENT、ファイルを開く場合はACTION_OPEN_DOCUMENTをIntentにセットして呼び出すことで、フォルダやファイルを指定するピッカーを起動します。
今回はピッカーのデフォルトフォルダを指定する方法を紹介します。
EXTRA_INITIAL_URI
デフォルトフォルダを指定は、IntentにEXTRA_INITIAL_URIでデフォルトフォルダのUriを指定します。
ピッカーで指定したファイルのUriは、ActivityResultLauncherで取得します。
:
private final ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
Bitmap bitmap = null;
int angle = 0;
switch (itemId) {
:
case R.id.menu32:
if (Objects.requireNonNull(result.getData()).getData() != null) {
new ExternalStorageWriter(context).imageFileCopy(result.getData().getData(), FILE_NAME, 2);
:
}
break;
:
}
:
}
});
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
:
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(view1.getContext(), R.style.PopupMenu);
Pupup popup = new PopupMenu(contextThemeWrapper, view1);
popup.setOnMenuItemClickListener(item -> {
itemId = item.getItemId();
Intent intent;
Bundle bundle1 = new Bundle();
switch (itemId) {
:
case R.id.menu31: // イメージ選択
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
intent.putExtra(EXTRA_INITIAL_URI, Uri.parse("content://com.android.externalstorage.documents/document/primary%3AAndroid%2Fmedia%2Fcom.jiseifirm.imgsaw%2F"));
activityResultLauncher.launch(intent);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
break;
:
ポップアップメニューのイメージ選択でピッカーを表示、ピッカーで指定したファイルをコピーしています。
ExternalStorageWriterはファイルをコピーするクラスです。
EXTRA_INITIAL_URIに指定するフォルダの表記がポイントです。
content://com.android.externalstorage.documents/document/primary%3A①%2F②%2F③%2F
内部ストレージ > ①Android > ②media > ③com.jiseifirm.imgsaw
…/document/primary%3AAndroid%2Fmedia%2Fcom.jiseifirm.imgsaw%2F
内部ストレージ > ①Pictures
…/document/primary%3APictures%2F
内部ストレージ > ②Download
…/document/primary%3ADownload%2F
今回は、ここまでです。
SAFのデフォルトフォルダを指定しているAndroidアプリです。
誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちらから、お願いいたします♪
ポチッとして頂けると、
次のコンテンツを作成する励みになります♪
これからAndroidのアプリ開発やJavaでの開発を始めたい方へ
アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、Android のアプリ開発ができるようになるには、かなりの時間がかかります。
オンラインスクールでの習得を、強くおススメします。
未経験者からシステムエンジニアを目指すのに最適です。まずは無料相談から♪
未経験者からプログラマーを目指すのに最適です。まずは無料カウンセリングから♪
カリキュラムとサポートがしっかりしています。お得なキャンペーンとかいろいろやっています♪
ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適です。まずは無料オンライン相談から♪
参考になったら、💛をポッチとしてね♪
コメント欄