このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。
※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 144匹目
http://echo.2ch.net/test/read.cgi/tech/1473241397/
Eclipse統合M35【Java/C++/Ruby/Python/Scala】
http://echo.2ch.net/test/read.cgi/tech/1405391739/
★★Java質問・相談スレッド179★★
http://echo.2ch.net/test/read.cgi/tech/1476706523/
****オススメ関連リンク****
■ TechBoosterhttp://techbooster.org/category/android/tableofcontents/
■ Androidメモhttp://www.saturn.dti.ne.jp/npaka/android/index.html
■ 逆引きAndroid入門http://www.adakoda.com/android/
■ Androidプログラマへの道http://wiki.livedoor.jp/moonlight_aska/
■ Android Wiki*http://wikiwiki.jp/android/
****公式リファレンス****
■ Android developershttp://developer.android.com/index.html
■ ソフトウェア技術ドキュメントを勝手に翻訳http://www.techdoctranslator.com/
■ 日本Androidの会http://www.android-group.jp/
■ StackOverFlowhttp://stackoverflow.com/questions/tagged/android
****前スレ****
Androidプログラミング質問スレ revision51
http://echo.2ch.net/test/read.cgi/tech/1457303564/
Androidプログラミング質問スレ revision52
http://echo.2ch.net/test/read.cgi/tech/1479305887/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Androidプログラミング質問スレ revision53 [無断転載禁止]©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a17-6DQQ)
2017/02/25(土) 12:46:10.62ID:NbM7/95y0896デフォルトの名無しさん (ワッチョイ ff90-w9sJ)
2021/02/14(日) 18:25:15.06ID:ZqCsi9Lc0 Buttonビューを用意して、onClickハンドラにファイル選択のコードを移せばいいでしょ
897デフォルトの名無しさん (ワッチョイ ff90-w9sJ)
2021/02/14(日) 18:29:55.76ID:ZqCsi9Lc0 というかその前にユーザーにファイル選択させたいなら>>893の方法は古くて、
https://developer.android.com/about/versions/11/privacy/storage
とかscoped storageとか色々自分の要件にあったものを..
https://developer.android.com/about/versions/11/privacy/storage
とかscoped storageとか色々自分の要件にあったものを..
898デフォルトの名無しさん (ワッチョイ ff90-w9sJ)
2021/02/14(日) 18:30:47.54ID:ZqCsi9Lc0899デフォルトの名無しさん (ワッチョイ efda-dcRn)
2021/02/14(日) 19:14:10.80ID:+r5StILh0 >>895
private String m_strInitialDir = getFilesDir().getAbsolutePath();
を使った場合、以下のエラーがでます。
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.test/com.example.test.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getFilesDir()' on a null object reference
値がnullになってるのが悪いと見ているのですが、何故
private String m_strInitialDir = Environment.getExternalStorageDirectory().getPath(); では値を取得できて、
private String m_strInitialDir = getFilesDir().getAbsolutePath(); ではnullになるのかが、分からないのです。
>>896
その方向で作ってはいますが、なにぶん初心者な物で手間取っています。
>>897 898
古いのは理解しています。
私が持っている機体がAndroid8なので、まずは8(API29未満)で動いてくれる物を作り、
その後、Android10(API29)以上に対応させたいと考えています。
もし、Android8 or10で行う場合、参考サイトの記述を、どの様に改変すればいいでしょうか?
自分でも調べているのですが、なかなかうまく行かず…
よろしくお願いします。 orz
private String m_strInitialDir = getFilesDir().getAbsolutePath();
を使った場合、以下のエラーがでます。
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.test/com.example.test.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getFilesDir()' on a null object reference
値がnullになってるのが悪いと見ているのですが、何故
private String m_strInitialDir = Environment.getExternalStorageDirectory().getPath(); では値を取得できて、
private String m_strInitialDir = getFilesDir().getAbsolutePath(); ではnullになるのかが、分からないのです。
>>896
その方向で作ってはいますが、なにぶん初心者な物で手間取っています。
>>897 898
古いのは理解しています。
私が持っている機体がAndroid8なので、まずは8(API29未満)で動いてくれる物を作り、
その後、Android10(API29)以上に対応させたいと考えています。
もし、Android8 or10で行う場合、参考サイトの記述を、どの様に改変すればいいでしょうか?
自分でも調べているのですが、なかなかうまく行かず…
よろしくお願いします。 orz
900デフォルトの名無しさん (ワッチョイ ff90-w9sJ)
2021/02/14(日) 19:23:09.52ID:ZqCsi9Lc0 >>899
まぁ、nullポインタだろとは思ったけど、なんでnullになるんだろうね
たぶん、初期化のタイミングだな
getFilesDirをそこではなく、ActivityのonCreateメソッドに移動したらどうなる?
setContentView( R.layout.activity_main );
のあるところに
まぁ、nullポインタだろとは思ったけど、なんでnullになるんだろうね
たぶん、初期化のタイミングだな
getFilesDirをそこではなく、ActivityのonCreateメソッドに移動したらどうなる?
setContentView( R.layout.activity_main );
のあるところに
901デフォルトの名無しさん (ワッチョイ ff90-w9sJ)
2021/02/14(日) 19:27:19.15ID:ZqCsi9Lc0 つか、飛びすぎじゃねぇか?
俺が勉強したときはButton1つ配置してボタンクリックしたらメッセージ表示してみるとか基本的なことから入ったけどなぜこんな複雑なサンプルをいきなり
レイアウトは基本xmlファイルに書く
activity_main.xmlってファイルがresフォルダのどっかにあるからそこにボタンなら<Button >みたいな要素つくる
俺が勉強したときはButton1つ配置してボタンクリックしたらメッセージ表示してみるとか基本的なことから入ったけどなぜこんな複雑なサンプルをいきなり
レイアウトは基本xmlファイルに書く
activity_main.xmlってファイルがresフォルダのどっかにあるからそこにボタンなら<Button >みたいな要素つくる
902デフォルトの名無しさん (ワッチョイ ff90-w9sJ)
2021/02/14(日) 19:28:25.00ID:ZqCsi9Lc0903デフォルトの名無しさん (ワッチョイ efda-dcRn)
2021/02/14(日) 19:48:34.42ID:+r5StILh0 >>900
参考サイトの作りが、public class MainActivity 直下に作る様なので、それに合わせていたのですが…
onCreateの直下に
String m_strInitialDir = getFilesDir().getAbsolutePath();
を作ったら
/data/user/0/com.example.test/files
を取得出来ました
これを、FileSelectionDialogにうまく渡さないといけないのですよね
参考サイトの作りが、public class MainActivity 直下に作る様なので、それに合わせていたのですが…
onCreateの直下に
String m_strInitialDir = getFilesDir().getAbsolutePath();
を作ったら
/data/user/0/com.example.test/files
を取得出来ました
これを、FileSelectionDialogにうまく渡さないといけないのですよね
904デフォルトの名無しさん (ワッチョイ efda-dcRn)
2021/02/14(日) 20:07:51.15ID:+r5StILh0 >>901
欲しい物を作る
自分が欲しいから、調べたり勉強したりで、進めるんじゃないかなぁと思ってる。
自分で使う分には問題ないんだけど、公開するなら、もっと良い物にした上で公開したい。
一応、プログラムの基本は理解してる(応用情報技術者資格は持ってる)
但し、JAVAは初心者!
よろしくお願いします orz
欲しい物を作る
自分が欲しいから、調べたり勉強したりで、進めるんじゃないかなぁと思ってる。
自分で使う分には問題ないんだけど、公開するなら、もっと良い物にした上で公開したい。
一応、プログラムの基本は理解してる(応用情報技術者資格は持ってる)
但し、JAVAは初心者!
よろしくお願いします orz
905デフォルトの名無しさん (ワッチョイ 5eda-S5lR)
2021/02/15(月) 01:12:17.86ID:r1R8Fv3d0 フラグメントって必要なくね?
906デフォルトの名無しさん (ワッチョイ efda-dcRn)
2021/02/15(月) 07:47:13.19ID:49WjG/of0907デフォルトの名無しさん (ワッチョイ 1f14-7X9K)
2021/02/15(月) 08:42:07.55ID:957kb5r00 viewPagerの中身fragment入れざるをえんじゃん
908デフォルトの名無しさん (テテンテンテン MMde-qVVh)
2021/02/16(火) 18:48:06.81ID:8iY4m84rM GridLayoutの子要素を追加する位置って変更できますか?
左上からではなく右下から追加したいのですが
左上からではなく右下から追加したいのですが
909デフォルトの名無しさん (ワッチョイ ff2d-GUQA)
2021/02/17(水) 15:30:02.03ID:Plux6w6X0 AndroidXなら変更できるよ
910デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/02/27(土) 11:14:12.21ID:QGb+sIIj0 アプリのテスターを募集したいと思っているのですが、どこで募集すればいいでしょうか?
911デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/02/27(土) 11:59:23.44ID:QGb+sIIj0 もう一つ質問です。
onClick 後の処理で、入力されたデータが希望の物に一致しなかった場合、
処理を中止する(onClickを抜ける)コマンドはどのように書けばいいですか?
onClick 後の処理で、入力されたデータが希望の物に一致しなかった場合、
処理を中止する(onClickを抜ける)コマンドはどのように書けばいいですか?
912デフォルトの名無しさん (ワッチョイ 4ac7-JP5l)
2021/02/27(土) 12:01:28.68ID:reHW1VhC0 return;
913デフォルトの名無しさん (ワッチョイ caad-JP5l)
2021/02/27(土) 12:04:26.93ID:MjavZayY0 友人知人に頼む
SNSで募集
クラウドソーシング等で有料で募集
if文にして条件に合わなければ処理しないようにすればいいよ
SNSで募集
クラウドソーシング等で有料で募集
if文にして条件に合わなければ処理しないようにすればいいよ
914デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/02/28(日) 14:03:53.32ID:2DSRaDXz0915デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/02/28(日) 15:10:58.27ID:2DSRaDXz0916デフォルトの名無しさん (ワッチョイ caad-JP5l)
2021/02/28(日) 18:24:19.71ID:0bJ/dwd80 ベータ版でストアに公開でもいいと思うよ
ベータ版でも製品版でも最初は誰もDLしてくれないから。。。
ベータ版でも製品版でも最初は誰もDLしてくれないから。。。
917デフォルトの名無しさん (ワッチョイ 67b0-VbPi)
2021/03/01(月) 02:35:11.77ID:27ATkQeN0918デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/03/01(月) 23:51:30.39ID:Ntd3N/hT0 内部テストというのをやってみましたが、これで良いのかよく分かっていません。
e-hentaiに特化したダウンローダー:
https://play.google.com/apps/internaltest/4700364722824014155
機能は、ehgm.plと言う物の下位互換です。
URL はダウンロード対象のIndexページのアドレスのみ対応してます
(https://e-hentai.org/g/xxxxxx/xxxxxxxxxx/)
対象としているサイトが、あまり行儀の良く無いサイトである事は承知していますが、
協力頂けるのであれば、意見を受け賜れると幸いです。
よろしくお願いします。
e-hentaiに特化したダウンローダー:
https://play.google.com/apps/internaltest/4700364722824014155
機能は、ehgm.plと言う物の下位互換です。
URL はダウンロード対象のIndexページのアドレスのみ対応してます
(https://e-hentai.org/g/xxxxxx/xxxxxxxxxx/)
対象としているサイトが、あまり行儀の良く無いサイトである事は承知していますが、
協力頂けるのであれば、意見を受け賜れると幸いです。
よろしくお願いします。
919デフォルトの名無しさん (ワッチョイ 0b14-DFeu)
2021/03/02(火) 09:16:28.49ID:CA/md18K0 テスターにメールアドレス追加しないと駄目だろ
deploygateの方が良いんじゃない
2次元バーコード読み取るだけでインストールできる
deploygateの方が良いんじゃない
2次元バーコード読み取るだけでインストールできる
920デフォルトの名無しさん (ワッチョイ 67b0-VbPi)
2021/03/03(水) 11:20:45.04ID:aNER/9350 これだとメアドをどうにかして収集して追加するところからだから、オープンβにするかdeploygateがいいね
921デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/03/03(水) 12:33:33.41ID:cKCbT4+r0922デフォルトの名無しさん (ワッチョイ 0b14-UmSJ)
2021/03/03(水) 13:07:58.79ID:qf1rSl260 テストしてやるとは言ってない
923デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/03/03(水) 13:31:06.10ID:cKCbT4+r0924デフォルトの名無しさん (ワッチョイ dba5-oL1e)
2021/03/03(水) 13:32:40.50ID:yjV9atCA0 依頼は他所でやれ
925デフォルトの名無しさん (ワッチョイ 1bda-m4PU)
2021/03/03(水) 13:42:54.10ID:cKCbT4+r0926デフォルトの名無しさん (テテンテンテン MM7f-yQbN)
2021/03/06(土) 21:20:45.85ID:w+6E5OyeM ランチャーアプリ作ってるんですが、ブラウザからウェブページのショートカットがホーム画面に追加された時の情報ってブロードキャストでキャッチできますか?
レシーバーにACTION_CREATE_SHORTCUTとか追加しても情報が飛んでこないので。分かる方教えてもらえるとありがたいです!
レシーバーにACTION_CREATE_SHORTCUTとか追加しても情報が飛んでこないので。分かる方教えてもらえるとありがたいです!
927デフォルトの名無しさん (ワッチョイ 51da-R6RZ)
2021/03/17(水) 02:16:34.13ID:slPPJ4Z70 EhViewer というアプリを参考に、あらたなアプリを作ってるんだけど
(EhViewerの配布元:https://github.com/seven332/EhViewer/releases)
こいつがどうやって、サーチ&表示してるのか分からない。
誰か分からん?
なんとなく、自前のDB作ってそこを使ってやってそうっぽい?
(EhViewerの配布元:https://github.com/seven332/EhViewer/releases)
こいつがどうやって、サーチ&表示してるのか分からない。
誰か分からん?
なんとなく、自前のDB作ってそこを使ってやってそうっぽい?
928デフォルトの名無しさん (ワッチョイ 91a5-9blg)
2021/03/17(水) 08:43:03.19ID:GVUsYX0l0 ソースコード公開してるんだから自分で確認すりゃいいでしょ
929デフォルトの名無しさん (ワッチョイ 51da-R6RZ)
2021/03/17(水) 16:56:35.97ID:slPPJ4Z70 それが出来ればいいんだけど…
余力ある人に教えて欲しい
余力ある人に教えて欲しい
930デフォルトの名無しさん (ワッチョイ edc7-IMun)
2021/03/17(水) 20:22:23.18ID:y3TGLyIf0 親分てーへんだ
931デフォルトの名無しさん (ワッチョイ b9da-1i51)
2021/03/24(水) 01:32:49.44ID:1qXI0SVe0 Sony系のエミュレーターって今じゃ手に入らないんですか?
また、Sony系のスマホでフォルダ作成を行った場合エラーが出る様なのですが、
原因や解決方法分かる方いませんか?
また、Sony系のスマホでフォルダ作成を行った場合エラーが出る様なのですが、
原因や解決方法分かる方いませんか?
932デフォルトの名無しさん (ワッチョイ 8b10-0ZVt)
2021/03/24(水) 18:49:17.67ID:G8d0xKyZ0 >>931
自分が作成・公開してるアプリで、Google Play Console の Android Vitalsの
「障害およびANR」を見ると、月に1〜2件の頻度でANRが報告されているのだが、
その殆ど(多分9割以上)がXperia(機種は色々)で、そのmainスレッドの一番上
には大抵ストレージアクセス系のnative関数になってる。
Xperiaは低品質のストレージ使ってるか、Sony独自のコードに何かバグがある
のかねえ?
自分が作成・公開してるアプリで、Google Play Console の Android Vitalsの
「障害およびANR」を見ると、月に1〜2件の頻度でANRが報告されているのだが、
その殆ど(多分9割以上)がXperia(機種は色々)で、そのmainスレッドの一番上
には大抵ストレージアクセス系のnative関数になってる。
Xperiaは低品質のストレージ使ってるか、Sony独自のコードに何かバグがある
のかねえ?
933デフォルトの名無しさん (ワンミングク MMa5-+7cm)
2021/03/24(水) 18:55:01.60ID:abEcFnZFM IT後進国の企業が作ってる糞コードなんか糞に決まってるだろ
934デフォルトの名無しさん (ワッチョイ 8b10-0ZVt)
2021/03/24(水) 19:11:10.86ID:G8d0xKyZ0 >>931
あと、Xperia での話ではないが、初回起動などでContext#getFilesDir()で
フォルダが新規に自動作成される時、作成直後はフォルダ内への書き込みに失敗
する場合があるようなので、書けるかテスト・ダメならちょっとSleepしてリト
ライするようにしてる。
あと、Xperia での話ではないが、初回起動などでContext#getFilesDir()で
フォルダが新規に自動作成される時、作成直後はフォルダ内への書き込みに失敗
する場合があるようなので、書けるかテスト・ダメならちょっとSleepしてリト
ライするようにしてる。
935デフォルトの名無しさん (ワッチョイ b914-+7cm)
2021/03/24(水) 20:49:24.04ID:tdvrnxfw0 MVVMって基本的にActivity一つに対して対応するViewModelを一つ作るんだと思うんですけど
RecyclerViewのadapterの中で使うレイアウトファイルにセットするViewModelは
それ専用のを作るのかActivityに対応するViewModelをセットするのか
どうしたらいいんですか
RecyclerViewのadapterの中で使うレイアウトファイルにセットするViewModelは
それ専用のを作るのかActivityに対応するViewModelをセットするのか
どうしたらいいんですか
936デフォルトの名無しさん (ワッチョイ 3990-3wyg)
2021/03/24(水) 21:04:36.89ID:qJXpnSlY0 俺はそのまんま表示するものに対しておとしこんでる
Activityに対してActivityのViewModelがあって、このActivityがItemの一覧をRecyclerViewなりで表示するなら
ItemのViewModelのListをActivityのViewModelが持つ
Activityに対してActivityのViewModelがあって、このActivityがItemの一覧をRecyclerViewなりで表示するなら
ItemのViewModelのListをActivityのViewModelが持つ
937デフォルトの名無しさん (ワッチョイ 3990-3wyg)
2021/03/24(水) 21:06:29.20ID:qJXpnSlY0 class ActivityViewModel {
List<ItemViewModel> itemViewModels
}
こんなイメージ
List<ItemViewModel> itemViewModels
}
こんなイメージ
938デフォルトの名無しさん (ワッチョイ b914-4Ddi)
2021/03/24(水) 21:48:24.09ID:tdvrnxfw0 なるほどviewmodelで親子関係を持つんですね
その場合に、子のviewmodelから親のviewmodelへアクセスしたいとかその逆みたいなことってありませんか
callback とか livedata の observe とか駆使して
子の viewmodel -> adapter -> activity -> 親の viewmodel
とか経由しないといけないと思うんですけど
その辺の煩わしさを感じて結局viewmodelは一つがいいんじゃないかとか
思ってしまうんですけどどうなんでしょうか
その場合に、子のviewmodelから親のviewmodelへアクセスしたいとかその逆みたいなことってありませんか
callback とか livedata の observe とか駆使して
子の viewmodel -> adapter -> activity -> 親の viewmodel
とか経由しないといけないと思うんですけど
その辺の煩わしさを感じて結局viewmodelは一つがいいんじゃないかとか
思ってしまうんですけどどうなんでしょうか
939デフォルトの名無しさん (ワッチョイ b914-4Ddi)
2021/03/24(水) 21:49:24.21ID:tdvrnxfw0 子の viewmodel から 別の子の viewmodel とかもアクセスし辛いじゃないすか
940デフォルトの名無しさん (ワッチョイ 3990-3wyg)
2021/03/24(水) 22:00:30.15ID:qJXpnSlY0 androidではその場合は親のViewModelも一緒にRecyclerViewに渡してる
本当は子が親の参照持つべきなのかもしれんが、そうすると子が他で使いまわしづらくなるので
本当は子が親の参照持つべきなのかもしれんが、そうすると子が他で使いまわしづらくなるので
941デフォルトの名無しさん (ワッチョイ 3990-3wyg)
2021/03/24(水) 22:04:16.43ID:qJXpnSlY0 DataBinding使ってるか知らんが、androidのDataBindingは変数いくつでも宣言できるからこれでいってる
xamlとかWPFとかでのMVVMだと、DataContextって言って変数が一つしか割り当てれないから、めんどくさいんだけどね
xamlとかWPFとかでのMVVMだと、DataContextって言って変数が一つしか割り当てれないから、めんどくさいんだけどね
942デフォルトの名無しさん (ワッチョイ b914-+7cm)
2021/03/24(水) 22:09:29.49ID:tdvrnxfw0 この辺がやっぱ何かもやっとしますよねえ
943デフォルトの名無しさん (ワッチョイ 3990-3wyg)
2021/03/24(水) 22:14:25.58ID:qJXpnSlY0 俺はMVVMギチギチにやるなら、親の参照を持った専用のItemのViewModel作るけど、そんな完璧にやってもめんどくさくなったりするからそこら辺は自分の適当なさじ加減で
944デフォルトの名無しさん (ワッチョイ 3990-D9EE)
2021/03/24(水) 22:38:45.09ID:qJXpnSlY0 例えば、Twitterアプリ考えて、たいてい一覧画面と詳細画面あるけど、
Tweetを表すTweetViewModelはまとめて両方で使えるように
で一覧画面の
TweetsViewModel {
}
TweetDetailActivity {
}
Tweetを表すTweetViewModelはまとめて両方で使えるように
で一覧画面の
TweetsViewModel {
}
TweetDetailActivity {
}
945デフォルトの名無しさん (ワッチョイ 3990-D9EE)
2021/03/24(水) 22:41:07.57ID:qJXpnSlY0 // 一覧
TweetsActivityViewModel {
List<TweetViewModel> tweetViewModels;
}
// 詳細
TweetDetailActivityViewModel {
TweetViewModel tweetViewModel;
}
TweetViewModelをどっちでも使いまわしたいからとりあえず、TweetViewModelには親の参照を持たせずに・・
まぁ、適当でいいんじゃねw
TweetsActivityViewModel {
List<TweetViewModel> tweetViewModels;
}
// 詳細
TweetDetailActivityViewModel {
TweetViewModel tweetViewModel;
}
TweetViewModelをどっちでも使いまわしたいからとりあえず、TweetViewModelには親の参照を持たせずに・・
まぁ、適当でいいんじゃねw
946デフォルトの名無しさん (ワッチョイ 8110-oXDN)
2021/03/25(木) 22:43:44.56ID:1ZcQUKKu0 webviewってアプリ側に悪意があったら情報取られますか?
例えばLINEのQRコード読み取りで開いたサイトはChromeではなくLINE内のブラウザで開かれると思いますが、この場合URLだけでなくにcookie等も取得できてしまいますよね?
例えばLINEのQRコード読み取りで開いたサイトはChromeではなくLINE内のブラウザで開かれると思いますが、この場合URLだけでなくにcookie等も取得できてしまいますよね?
947デフォルトの名無しさん (ワッチョイ d9da-z6l0)
2021/03/27(土) 15:02:20.37ID:+36ivnm+0948デフォルトの名無しさん (ワッチョイ d914-UUyU)
2021/03/27(土) 18:52:50.77ID:OFcvctcZ0 いーやお前が悪い
949デフォルトの名無しさん (ワッチョイ d9da-z6l0)
2021/03/30(火) 16:28:47.84ID:SN6IzqgC0 アプリからダウンロードフォルダのパスを取得する方法についての質問です。
API28(Android9) 以下の場合:
File dataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
API29(Android10) の場合:
マニュフェストに android:requestLegacyExternalStorage="true" を追記
File dataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
API30(Android11) の場合:
どーしたらいいのか分かりません。
Environment.getExternalStoragePublicDirectory が API29で使えなくなったけど、マニュフェストを弄ればなんとか使える
API30 でそれも許されなくなって、どうやってダウンロードフォルダのパスを取得したらいのやら教えて欲しいのです。
よろしくお願いします。
API28(Android9) 以下の場合:
File dataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
API29(Android10) の場合:
マニュフェストに android:requestLegacyExternalStorage="true" を追記
File dataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
API30(Android11) の場合:
どーしたらいいのか分かりません。
Environment.getExternalStoragePublicDirectory が API29で使えなくなったけど、マニュフェストを弄ればなんとか使える
API30 でそれも許されなくなって、どうやってダウンロードフォルダのパスを取得したらいのやら教えて欲しいのです。
よろしくお願いします。
950デフォルトの名無しさん (ワッチョイ d914-Nru7)
2021/03/30(火) 16:35:50.63ID:blrMEvRh0 contentResolverじゃね
951デフォルトの名無しさん (ワッチョイ d9da-z6l0)
2021/03/30(火) 17:35:42.83ID:SN6IzqgC0 >>950
contentResolver を調べてみたのだけど
>アプリが作成していない MediaStore.Downloads コレクション内のファイルにアクセスする場合は、ストレージ アクセス フレームワークを使用する必要があります。
>参考URL:https://developer.android.com/training/data-storage/shared/media?hl=ja
API30(Android11) の場合ストレージ アクセス フレームワーク(SAF)を経由しないとダウンロードフォルダのパスを取得出来なくなってるのでは?
初めてAndroidアプリを作ってます。
アドバイス(出来れば具体的に)お願いします。
contentResolver を調べてみたのだけど
>アプリが作成していない MediaStore.Downloads コレクション内のファイルにアクセスする場合は、ストレージ アクセス フレームワークを使用する必要があります。
>参考URL:https://developer.android.com/training/data-storage/shared/media?hl=ja
API30(Android11) の場合ストレージ アクセス フレームワーク(SAF)を経由しないとダウンロードフォルダのパスを取得出来なくなってるのでは?
初めてAndroidアプリを作ってます。
アドバイス(出来れば具体的に)お願いします。
952デフォルトの名無しさん (ブーイモ MMd5-duYg)
2021/03/30(火) 17:51:03.21ID:tA63+zJpM もうストレージアクセスフレームワーク使わないと駄目なんじゃないかね
953デフォルトの名無しさん (ブーイモ MMd5-duYg)
2021/03/30(火) 18:02:28.01ID:tA63+zJpM API29対応して放置してるアプリがあるんだけど、pixel4aのAPI30で動かして見ると、SAFを通してならばダウンロードファイル全部見えてるぽい
scoped storage 経由だとなんか一部しか見えない
scoped storage 経由だとなんか一部しか見えない
954デフォルトの名無しさん (ブーイモ MMd5-duYg)
2021/03/30(火) 18:09:11.42ID:tA63+zJpM API29対応するときに、SAFかscoped storageだけしか見ないようにした
ファイルパスを入手するのでは無くて、ContentResolver::openFileDescriptor使ってファイル見るようにしたと思った
ファイルパスを入手するのでは無くて、ContentResolver::openFileDescriptor使ってファイル見るようにしたと思った
955デフォルトの名無しさん (ブーイモ MMd5-duYg)
2021/03/30(火) 18:23:05.54ID:tA63+zJpM この辺見て頑張りたまえ
データ ストレージとファイル ストレージの概要
https://developer.android.com/training/data-storage?hl=ja
対象範囲別ストレージ
https://developer.android.com/training/data-storage?hl=ja#scoped-storage
Android ストレージのユースケースとおすすめの方法
https://developer.android.com/training/data-storage/use-cases?hl=ja
Android 11 でのストレージに関する更新
https://developer.android.com/about/versions/11/privacy/storage?hl=ja
Android 10 との互換性を維持する
https://developer.android.com/about/versions/11/privacy/storage?hl=ja#maintain-compatibility-android-10
データ ストレージとファイル ストレージの概要
https://developer.android.com/training/data-storage?hl=ja
対象範囲別ストレージ
https://developer.android.com/training/data-storage?hl=ja#scoped-storage
Android ストレージのユースケースとおすすめの方法
https://developer.android.com/training/data-storage/use-cases?hl=ja
Android 11 でのストレージに関する更新
https://developer.android.com/about/versions/11/privacy/storage?hl=ja
Android 10 との互換性を維持する
https://developer.android.com/about/versions/11/privacy/storage?hl=ja#maintain-compatibility-android-10
956デフォルトの名無しさん (ワンミングク MM62-Nru7)
2021/03/30(火) 18:26:02.66ID:oe3FBI0+M ファイルパスはもう見れないんじゃね
957デフォルトの名無しさん (ワッチョイ d9da-z6l0)
2021/03/30(火) 20:02:06.80ID:SN6IzqgC0 沢山のアドバイスありがとうございます。
頂いたアドバイスの内容を調べ、勉強させて貰います。
頂いたアドバイスの内容を調べ、勉強させて貰います。
958デフォルトの名無しさん (ワッチョイ 5ef2-pdRJ)
2021/03/31(水) 19:07:15.63ID:lwtQ5GkB0 自分はちょっと特殊な(工場で使うような)ファイルのビューアを作ってます。
やっぱりAPI30のファイルアクセスで悩んでいて、ファイル形式が一般的でなくて拡張子で種類を判断していたけど、これからどうしたものかと。
別のアプリはSAF使ってファイル選択後に種類判断したけど、関係ないファイルが表示されるし、選択ミスもあるしで使いにくいったらありゃしない。
また別のアプリはフォルダ下にある複数のファイルが必要なのでどうすりゃいいんだろ?
やっぱりAPI30のファイルアクセスで悩んでいて、ファイル形式が一般的でなくて拡張子で種類を判断していたけど、これからどうしたものかと。
別のアプリはSAF使ってファイル選択後に種類判断したけど、関係ないファイルが表示されるし、選択ミスもあるしで使いにくいったらありゃしない。
また別のアプリはフォルダ下にある複数のファイルが必要なのでどうすりゃいいんだろ?
959デフォルトの名無しさん (ワッチョイ d914-UUyU)
2021/03/31(水) 20:15:04.48ID:thzCmkYw0 Googleの手数料が15%になるってことはAdMobの広告収入が今までより20%くらい増えるってことなん
960デフォルトの名無しさん (ワッチョイ 3684-pdRJ)
2021/03/31(水) 22:20:02.61ID:tw4xdBq70 >>958
SAFのUIでファイルを指定させるのではなくて、フォルダを指定させることができる
アプリは指定されたフォルダ以下の階層のファイルやフォルダへのアクセス権が貰えるので、ファイルの一覧を自分で取得して選択リストを自前で表示すればいい
ただ面倒なのは、ファイルの一覧の取得やファイルへのアクセスには、SAFの独自関数を使用する必要がある(はず)で、JavaのFileクラスやLinxuのシステムコールではアクセスできない(と思う)
ユーザによるSAF UI上でのフォルダの指定は、最初に一度やって貰えば、アプリ側でそれを保存しておける
SAFのUIでファイルを指定させるのではなくて、フォルダを指定させることができる
アプリは指定されたフォルダ以下の階層のファイルやフォルダへのアクセス権が貰えるので、ファイルの一覧を自分で取得して選択リストを自前で表示すればいい
ただ面倒なのは、ファイルの一覧の取得やファイルへのアクセスには、SAFの独自関数を使用する必要がある(はず)で、JavaのFileクラスやLinxuのシステムコールではアクセスできない(と思う)
ユーザによるSAF UI上でのフォルダの指定は、最初に一度やって貰えば、アプリ側でそれを保存しておける
961デフォルトの名無しさん (ワッチョイ 5ef2-pdRJ)
2021/03/31(水) 22:40:30.10ID:lwtQ5GkB0 >>960
ありがとうございます。調べてみます。
ありがとうございます。調べてみます。
962デフォルトの名無しさん (ワッチョイ 1290-FNac)
2021/04/01(木) 00:20:57.77ID:Ht+Na1Lt0 本当にパスが必要ならスーパー権限要求すればいいだけ
MANAGE_EXTERNAL_STORAGE
ストア経由しなければこれでもいいし、ストアで配布すると審査厳しくなるのだろう..
MANAGE_EXTERNAL_STORAGE
ストア経由しなければこれでもいいし、ストアで配布すると審査厳しくなるのだろう..
963デフォルトの名無しさん (ワッチョイ 85da-8vo5)
2021/04/05(月) 15:00:44.26ID:QlQVv+Ua0 開発中のアプリを見せた際、マテリアルデザインのテンプレートを使った開発を行った方が良いとアドバイスを受けました。
なので、マテリアルデザインについて勉強中なのですが、
皆さんは、どのようにデザインを作られていますか?
また、マテリアルデザインのテンプレートのお勧めなどありますか?
なので、マテリアルデザインについて勉強中なのですが、
皆さんは、どのようにデザインを作られていますか?
また、マテリアルデザインのテンプレートのお勧めなどありますか?
964デフォルトの名無しさん (ワッチョイ 6514-0pr0)
2021/04/05(月) 16:26:47.46ID:0tu2RPBZ0 アプリ更新して40時間ぐらい経つのにまだ審査中なんだがなにやってんの
965デフォルトの名無しさん (ワッチョイ 4b10-5QI3)
2021/04/05(月) 18:18:00.71ID:08wdQHfO0 >>964
アンタのアプリを待ってる人なんか誰もいないから気にすんな
アンタのアプリを待ってる人なんか誰もいないから気にすんな
966デフォルトの名無しさん (ワッチョイ 4b8f-+tvY)
2021/04/05(月) 20:04:29.28ID:s4XNa1gN0 たまにあるよな、すげー時間かかるとき
別のアプリが2時間ぐらいで承認されるのに、一方で1週間ぐらい待たされるアプリもあったな
別のアプリが2時間ぐらいで承認されるのに、一方で1週間ぐらい待たされるアプリもあったな
967デフォルトの名無しさん (ワッチョイ 6514-0pr0)
2021/04/05(月) 20:13:42.40ID:0tu2RPBZ0 今やappleより審査厳しくなってるんじゃないの
968デフォルトの名無しさん (ワッチョイ 85da-5Z6j)
2021/04/06(火) 01:25:04.83ID:ZNqtV0fC0 コロナの影響か分からないけど最近は72時間以上かかる事が多いみたい
969デフォルトの名無しさん (ブーイモ MM6b-h+YV)
2021/04/06(火) 10:24:31.75ID:equoTOm3M 勝った
GoogleがOracleとの10年越しの裁判で勝訴 最高裁はJava著作権侵害せずの判断
https://www.itmedia.co.jp/news/spv/2104/06/news055_0.html
GoogleがOracleとの10年越しの裁判で勝訴 最高裁はJava著作権侵害せずの判断
https://www.itmedia.co.jp/news/spv/2104/06/news055_0.html
970デフォルトの名無しさん (ブーイモ MM6b-h+YV)
2021/04/06(火) 10:26:51.71ID:equoTOm3M https://www.publickey1.jp/blog/21/10googlejava_se.html
GoogleがJava SE APIをコピーしたことは、プログラマーが自分の才能を生かして新しいプログラムを開発するために必要なコードのみを含んでおり、法律上、その素材におけるフェアユースにあたる。
GoogleがJava SE APIをコピーしたことは、プログラマーが自分の才能を生かして新しいプログラムを開発するために必要なコードのみを含んでおり、法律上、その素材におけるフェアユースにあたる。
971デフォルトの名無しさん (ワッチョイ 6514-0pr0)
2021/04/06(火) 15:43:36.21ID:2rq1TMM70 おおおおいい!まだアプリ更新されねえぞはよしろよ!!
972デフォルトの名無しさん (ワッチョイ 67da-/CMm)
2021/04/15(木) 16:22:00.72ID:wd5TCrZo0 私がこないだ、申請した時は3〜5日(土日挟む)くらい掛かった記憶がある
973デフォルトの名無しさん (ワッチョイ 67da-/CMm)
2021/04/15(木) 16:26:49.91ID:wd5TCrZo0 Android11だとダウンロードフォルダのパスの取得が難しくなってるよね
chromeでダウンロードする場合、どうやって処理してるんやろか?
chromeでダウンロードする場合、どうやって処理してるんやろか?
974デフォルトの名無しさん (ワッチョイ 1714-CoCA)
2021/04/15(木) 19:43:02.78ID:NeOuZGfy0 アプリ更新されたよ。ダウンロードしてね
975デフォルトの名無しさん (ワッチョイ d7da-1iXq)
2021/04/17(土) 15:25:05.37ID:lWhefxZ40 SDカードの存在確認ってどうやって作っていますか?
976デフォルトの名無しさん (ワッチョイ 5714-Xk4B)
2021/04/17(土) 23:06:33.80ID:Jr8yB9AX0 目標管理とかうぜー
977デフォルトの名無しさん (ワントンキン MMc2-+a6l)
2021/04/25(日) 18:46:45.94ID:nfdEzF6CM Stethoがchromeで使えないのはよ直せや
978デフォルトの名無しさん (ワッチョイ 0bae-DjaX)
2021/05/10(月) 16:54:15.95ID:NknrS4Mg0 もうAndroid studioぐらいのエディタになるとグローバル変数は色分けしてくれるんで
変数の接頭にこれはグローバルだとわかるようなの書かなくていいんですかね?
変数の接頭にこれはグローバルだとわかるようなの書かなくていいんですかね?
979デフォルトの名無しさん (ブーイモ MM3f-gxHo)
2021/05/10(月) 19:45:26.43ID:dbraRp9ZM グローバル変数を使ってしまっているという罪の意識を常に喚起する様に接頭辞にXXX_とかつけるべきだよ
980デフォルトの名無しさん (ワッチョイ 0b76-DjaX)
2021/05/10(月) 19:48:11.03ID:EccFdDEK0 使うなと言われるけど速度優先の時にはどうしても使ってしまう
毎回下の階層に余計にデータ渡ししないといけないし、繰り返し呼ばれるようなところは特に
毎回下の階層に余計にデータ渡ししないといけないし、繰り返し呼ばれるようなところは特に
981デフォルトの名無しさん (ワントンキン MMda-izY4)
2021/05/10(月) 19:50:22.42ID:XMzCpLnaM AndroidはC/C++みたいな糞と違って自由だから
むしろSharedPreferenceManagerとか作ってグローバルで持ったらいいよ
むしろSharedPreferenceManagerとか作ってグローバルで持ったらいいよ
982デフォルトの名無しさん (ワッチョイ a6da-XZlr)
2021/05/10(月) 20:51:53.51ID:ifX51dGw0 Androidってグローバル変数の値保持は保証されてないでしょ?
怖くて使えない
怖くて使えない
983デフォルトの名無しさん (ワッチョイ ca48-wWnc)
2021/06/07(月) 14:58:50.88ID:IxrG8iEi0 android-studioでrxjavaをデバッグしているのですが
関数
return Observable.just(1)
.observeOn(Schedulers.computation())
.concatMap(v -> {処理})
.observeOn(AndroidSchedulers.mainThread())
.concatMap(v -> Observable.just(2));
このコードで上側のconcatMapは呼ばれるのですが
ステップ実行していくと{処理}の部分が全く呼ばれず
次のobserveOnに行ってしまいます
なぜか分かる方いらっしゃいましたらどう対応すればいいのか教えて貰えませんか
関数は戻り値を他のObservableとつなげて使っています
関数
return Observable.just(1)
.observeOn(Schedulers.computation())
.concatMap(v -> {処理})
.observeOn(AndroidSchedulers.mainThread())
.concatMap(v -> Observable.just(2));
このコードで上側のconcatMapは呼ばれるのですが
ステップ実行していくと{処理}の部分が全く呼ばれず
次のobserveOnに行ってしまいます
なぜか分かる方いらっしゃいましたらどう対応すればいいのか教えて貰えませんか
関数は戻り値を他のObservableとつなげて使っています
984デフォルトの名無しさん (ワッチョイ 15b0-Imdu)
2021/06/09(水) 23:24:01.43ID:lP0Gy2su0 ブレイクポイントの位置がズレてるとか?
一度処理の部分を関数に切り出して関数の中にブレークポイントを置いて、動作するか確認
一度処理の部分を関数に切り出して関数の中にブレークポイントを置いて、動作するか確認
985デフォルトの名無しさん (ワッチョイ c114-xpOm)
2021/06/09(水) 23:46:55.98ID:7MnLem3f0 人類にrxjavaは早すぎる
986デフォルトの名無しさん (アウアウウー Sa67-F5ry)
2021/06/15(火) 09:48:59.31ID:Pt7e5czla うん。俺は未だにわからない。
987デフォルトの名無しさん (ブーイモ MMff-LVrK)
2021/06/20(日) 23:42:03.85ID:8bKSVR8hM midiシーケンサーつの作り方考えてます。
midiserviceってドキュメントみると外付けのmidi機器だけでなく、仮想デバイス(xmlで定義しておくとgetDevicesで取得出来る?)からmidiキーノートの送信って出来そうですけど合ってますか?
midiserviceってドキュメントみると外付けのmidi機器だけでなく、仮想デバイス(xmlで定義しておくとgetDevicesで取得出来る?)からmidiキーノートの送信って出来そうですけど合ってますか?
988デフォルトの名無しさん (ワッチョイ 832c-C2Ex)
2021/06/22(火) 14:17:42.46ID:Zl20nMwz0 皆さん…Android12対応…スプラッシュ…いつやります?…7月くらいにやってもいいんだけど…
Androd12のSDKは…まだpreviewになってるけど…もうやっちゃった方がいいの…?
Androd12のSDKは…まだpreviewになってるけど…もうやっちゃった方がいいの…?
989デフォルトの名無しさん (ワッチョイ e301-t9L1)
2021/06/22(火) 18:18:35.57ID:5urFnBJ50 スプラッシュなんかいらね
990デフォルトの名無しさん (ワッチョイ 832c-C2Ex)
2021/06/22(火) 23:18:38.17ID:Zl20nMwz0 Android11が…2020年9月リリースで…Xperiaが対応したのは…2021年2月…
結構時間かかってるので…そんなに…焦らなくてもいいかもしれない…
ちなみに…今のところ…ベータでは…どのSDKでも…勝手にスプラッシュが出る…
それを…調整しないといけない…
結構時間かかってるので…そんなに…焦らなくてもいいかもしれない…
ちなみに…今のところ…ベータでは…どのSDKでも…勝手にスプラッシュが出る…
それを…調整しないといけない…
991デフォルトの名無しさん (ワッチョイ 832c-C2Ex)
2021/06/23(水) 04:10:03.84ID:Pe6ElgGw0 Pixelは…Android11リリースした次の日に…アップデートが来たらしい…
まずいなぁ…どのタイミングで…アプリを更新すればいいのやら…
まずいなぁ…どのタイミングで…アプリを更新すればいいのやら…
992デフォルトの名無しさん (ワッチョイ 4e10-5AKk)
2021/06/23(水) 04:36:53.61ID:qrlMFNnZ0993デフォルトの名無しさん (ワッチョイ 832c-C2Ex)
2021/06/23(水) 15:06:45.30ID:Pe6ElgGw0 デフォルトのままだと…アイコンのサイズが…フィットしてない…
それに加えて…僕は…独自のスプラッシュを使用しているので…
そっちを出すように…変えたい…
それに加えて…僕は…独自のスプラッシュを使用しているので…
そっちを出すように…変えたい…
994デフォルトの名無しさん (ワッチョイ e301-t9L1)
2021/06/23(水) 15:16:22.42ID:PR3Q8cxM0 かゆ...うま...
995デフォルトの名無しさん (ワッチョイ 832c-C2Ex)
2021/06/23(水) 15:24:19.01ID:Pe6ElgGw0 ラウンドアイコンなら…綺麗に出るみたいだが…そこらへんも込み込みで…
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
- とらせん IP付き★2
- 【U-NEXT】プレミアリーグ総合 ★44
- こいせん 全レス転載禁止
- ハム専
- ネットでサッカー観戦◆2025-32
- 【ATP】テニス総合実況スレ2025 Part 214【WTA】
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- Tバック履いた状態でうんこ漏らしたらどうなるの?
- 18歳JKとセックスしたらアウト⁉
- 朝だよー🥁🥺ドンドンドンドン
- なんやかんやケンモミンって良い人多いよね [943688309]
- 【時事】立憲民主党、30代の支持率が「ゼロ」😨 [369521721]
