Androidプログラミング質問スレ revision54
■ このスレッドは過去ログ倉庫に格納されています
activityのintentfilterにcategory.launcherとcategory.homeを設定しているのですが、ホームボタンから起動される時と他のランチャーから起動される時でactivityが複数起動してしまうのですが、単一のactivityとして起動させるにはどうしたら良いでしょうか?
playstoreの他のホームアプリをいくつか試したところ同様の現象が確認出来ました。いい解決方法わかる方いたら教え下さい。宜しくお願いします。 >>446
singletaskに設定してますが、二重起動してしまいます。他のmodeも全て試しましたが駄目でしたね… サービスが寝ないようにするにはインテントをずっと投げ続けてあげないと駄目なのかなぁ アプリをユーザに終了させないにはどうすればいいんですか?
安居酒屋にある、タブレットで料理を注文する端末のようなものを作りたいんです
一つの技としてホームアプリにしてしまう方法があるようですが、それ以外の方法があれば教えてください DroidKaigi 2018 - Kioskアプリと端末の作り方 / tomoya0x00 [JA]
ttps://www.youtube.com/watch?v=ofUJaIiaVlw&t=1191s WearとPhoneのデータのやり取りでイベント(onDataChanged)でのデータ取得は
できているんだが…
データを自分から取りにいくために
dataItems = Tasks.await(Wearable.getDataClient(context).getDataItems());
を試してみたらうまくいかなかった
データ(キー)は複数あるんだが、1つしか取得できない状態
どうすればいいんでしょ? iPhoneは使ったことないので知らないのですけど
Androidアプリってなんであんなに更新頻度が高いんですか?
あれは明らかにパケット消費増大の一因になってますよね
更新頻度が高いGoogleが目立つというのもあるのですけど
Google以外のアプリケーションもそれなりの頻度です
プログラマー視点からみてアプリケーションの更新のしやすさとかがあるのでしょうか? 実際の判断は違うかもしれないけど
素早いリリースを繰り返すことでバグが含まれていたとしても問題になる前に対処できるから
もちろんテストをしないって意味ではないけど iOSだと審査あるから念入りにテストしてアプデするけど
Androidだと審査ないから結構気楽にアプデしちゃうのではないかと
昔ろくにテストせずアプデしたらすぐにバグが見つかって次の日アプデとかよくやったわ アップデートはいいんだけどそのたびにアクセス権限じわじわ増やしていくの止めて欲しい Androidの正規表現で a( の文字を探したいです。
(を文字として使うので\付きで
ptn=Pattern.compile("a\(");
matcher=ptn.matcher("123a(0)");
とすると1行目のcompileでエラーになり
ptn=Pattern.compile("a\\(");
と2つ付けると通りますが2行目のmatcherでエラーになります。
( の文字の検索はどう書けばいいんでしょうか? >>460
どういうエラーが出るのかコピペしてくれ。 一行目のcompileのところではエディタに赤線で
スケープ・シーケンスが無効です (有効なものは \b \t \n \f \r \" \' \\ です )
と出ます。
2行目のmatcherでは実機実行ではクラッシュ、デバッグモードではエラーというか
matcher.classのタブが出て クラスファイルエディター ソースが見つかりませんでした。
jarファイルC:\android-sdk\platfoems\android-21\android.jarにソース添付がありません。
と出てデバッグの進行ポイントがどこかえ消えて実行継続できなくなります。
今ちょっと変えてやったらmatcherは通ってd=matcher.start();の位置取得所のところで出ました。 "a\\("としたときでmatcherのfoundのステートはfalseとなっています。
"a\("では実行すらできません。 この順でやるとどう?
Pattern p = Pattern.compile("a\\(");
Matcher m = p.matcher("123a(");
boolean f = m.find();
int ptr = f ? m.start() : -1;
ptr に最終的に何が入る? 3です、ああ取得できてますね
最初matcherでひっかかってたのは何だったんだろう 実際はもう少し複雑で a( だけでなく a) も探したいのですが
Pattern p = Pattern.compile("[ab]\\(|\\)");
これではだめなのでしょうか、うまくいきません。 >>466
それなら「(a\\(|a\\))」かな グループ化して括弧をつけるんですね
目的のことができそうです
ありがとうございました AACのLiveDataがよく分からないんですけど、
これってObservableFieldとなにか違うんすか >>467
俺なら「a[\\(\\)]」かな
正規表現とかやってると C# の @"a[\(\)]" みたいなエスケープを解釈しない文字列表現が欲しくなるな 確かイベントの発生の仕方に違いがあった。
LiveDataは、ソースの通知の都度発生するけど、Ob〜の方は変更があった時のみ発生。
だから、通知の多いLiveDataをそのままViewに結びつけちゃうと、更新がヤバイことになる。 ObservableFieldを糞にしたのがLiveDataなんすか >>471
Kotlin には """ (ダブルクォーテーション3つ) があるぞ。 Java11でやっと対応するね。
Androidが対応するまで最低1年、シェアが90%超えるまでさらに最低3年はかかるけどw >>474
それ、多分pythonのパクリ
C++に比べたらたいしたことない 既存言語の機能を取り入れたり参考にしたりするのを悪いといってるのではなく、それについて「パクリ」という用語を当てはめているのが不適切だと言われてるんでないの? >>:符号付きビットシフト
>>>:符号無しビットシフト
これは逆にして欲しい。
もう無理だろうけども・・・。 javaは歴史ももうかなり長いのに
イベント関係でいちいちインターフェースを継承したクラスのインスタンスを作成して、
そのなかに処理を記述して〜みたいな読みにくいとか不必要な記述はなんとかならんかったのか
一方C#はメソッド参照用の専用の型を作ることで解決した >>478
JavaはCからのパクリ多いよな。演算子とか文法とか。プログラマーの学習量を減らして移行を楽にさせるためにわざとそうしたんだろうけど。 数年前からほとんど
アンドロイド向けの技術書でなくなったね
昔出た本のバージョン上げただけの本ばかりになった ASでminSdkVersion 9にすると実行しようとした時に’最小は14だ’といったメッセージで怒られて実行できませんが
実行できないこともないと聞いたことがあるんですがどうやれば14より下で実行できるんでしょうか? >>486
TargetSdkVersionを26以降にすると、minSdkVersionは14以降になるよ。これはもう仕方のないこと。
TSVを25以前にすれば13以前にもできるけど、今年の8月からはバージョンアップできなくなる。 マシンAとBがあってAだけデバッグモードができなくなりました
AのEclipseではデバッグ実行すると実機でデバッグのおなじみのダイアログ表示がされたままでその先に全く進みません
ASではブレークポイント設定しても全くそこで止まることなく通常の実行のようになってしまいます
マシンBのEclipseをまるごとコピーしてマシンAで実行しても状態は変わらず、SDK側に問題があるのかと考えたのですが
ASとEclipseのSDKは分けて別のものを使っています
デバッグができるようにするためにはどの辺を弄ればいいでしょうか? デバッグアプリの選択というのでASの方はえきるようになりました、Eclipseは変わらないです
USBデバッグ許可の取消しというのがAndroid4.x 6.0 共に見当たらないのです ごちゃごちゃやってて今試したらなぜかできました
タイミングでできるときとできない時があるようです
>>491
もうほとんどメンテしないんですが一部昔のアプリが残ってるんで 以前はプログラム中から読み込む画像(アイコンではなく)はdrawable-mdpiに置いておけば
どの解像度でも読み込めるというのがあったんですが
現在はdrawableとmipmap-anydpi-v26というのがあるようですが
どちらに置いておけばどのモードでも読めるんでしょうか? Android Studio 入れて何かアプリ作ろうかなと思っています
「2.3で更新を止めてる」みたいな意見を見かけたんですが、
最新版入れても、不安定であるとか、重いとか、何かデメリットないですか?
それとも今からインストールする人には関係なくて素直に最新版を入れて問題ないでしょうか?
おすすめのバージョンとかありましたら教えてくださると助かります 2.3から3.1だと勝手が変わってしまうからって言うのが大きい気がする
初めてなら3.1から始めても問題はないと思うよ 最新版って言っても、canaryは入れるなよ
今は3.1.2だ メモリ16G推奨とかちらっと聞いたから2.3で止めてたけど、公式では8Gと書いてあるのか 16GB推奨とか恐ろしい話だね
自分はいま4GBでやってるけどまあまあ我慢できる 4GBの時は結構HDDガリガリしてたけど12GBにしたらかなり減った
あとエミュで2GBメモリの設定しても平気だしAS2つ以上起動もできる
今のとこ最大9GB以上使われたことないけど やっぱ色々快適にやろうとすると16Gくらい欲しくなるよなぁ
ググりながらだからブラウザも開いてたいし…
8Gでやってるけど調子悪いとchrome開いてるだけでたまにビルド中out of memory起こるわ
>>499
4Gまじか
エミュとか起動したらギリギリならない? 画面中央下部に配置したボタン(FABのような丸形状)を左右にドラッグ(またはフリック)に連動させてviewpagerのページ送りをしたいと考えています。
ボタンに関してはonTouch() MotionEvent.ACTION_MOVE、GestureDetector#onFling()にて指に追従させることができたのですが、ボタンの移動量に連動させてviewpagerの左右方向に動かすにはどうすれば良いでしょうか。
viewpagerを直接左右にスワイプするのではなく、またボタンの動きに合わせたいためviewpagerのページ番号の指定はしたくないです。 android studioでアプリの勉強を始めたのですが、フリーズして反応しなくなります。
PC自体の再起動もできないので、強制終了するしかなくなるのですが
原因や、対処法を知ってる方いらっしゃいますか?
Lavie
プロセッサ intel(R) core(TM) i7-4700MQ CPU `2.40GHZ
実装Ram 8.00GB(7.76 GB usable)
です。よろしくお願いします。 PC自体が重くなってんじゃね
初期化してSSD換装したら >>504
CPUも遅いしメモリも少ないので処理に時間がかかっている
だけだと思われ
1時間くらいほかしといて戻ってくるようならPCのスペック不足 >>505,506
ありがとうございます
スペック高いPCを買ってきます ASでいつもMainActivity.java開いてる状態なんですが
実行した後、他にいくつか同じパッケージに置いてあるものの1つのxx.javaがエディタで勝手に開いてアクティブな状態になってしまいます。
これはどういう条件でこの現象が起こるんでしょうか?
毎回面倒なのでこれが起こらないようにするにはどうすればいいでしょうか? エラーはないけど 〜は使用すべきでありませんの打ち消し線は入ってます
これのせいか 自アプリからの暗黙的インテントで、ユーザーが選択したアプリのパッケージ名を知る方法ってありません? android studio 3.1を使ってみたのですが
パレットからViewをactine.xmlにドラッグできないのはなんででしょうか?
何か設定が必要なの? fragmentで色々弄った結果をactivityの変数に保存しておきたいんですが、
普通どうやるもんですか? 最近ならviewmodelに置いとくのが一番楽じゃないか?
リスナ定義もいらんし 自分以外の他アプリで再生されてる音楽が、
最後まで再生されたとを検知する方法ってありませんか? AudioManager.isMusicActiveで、音が鳴ってるがどうかは拾えるんだが… 3年前くらいに公開したアプリが今日になって、
ポリシー違反のため削除しましたっていう内容のメールが着たんだが、
個人開発のアプリでプライバシーポリシーってどう書いたらいいんだ ググって見つけた個人ブログの雛形と、スマートフォンセキュリティ協会みたいなとこが公開してるPDF参考にした
ポリシー違反て一切作ってないんじゃなくて内容が良くなかったってこと? そのメールで言及されているポリシーとは「あなたが策定した(すべき)ポリシー」なの?
「googleが策定したポリシー」にアプリの挙動が抵触してるのでアプリ自体を修正してね、ってことじゃないの? カメラ使ってるとprivacy policyページ作っとかないといきなしアプリ削除されるらしい
みんなもきよつけて そもそも作ってなかったのか…
一年以上前にその手の警告メールあったはずだが だって、"今回はプライバシー ポリシーの URL を送信しない。"のチェックボックスあるやん。。 因みに現在地取得の権限はブライバシーポリシー不要なのかな?またはACTION_IMAGE_CAPTUREで他のカメラアプリを起動して写真を取る場合も、カメラのセンサーデータを扱っている訳ではないので問題ないのかな。良くわからん。。 自分もちょうど先日削除喰らった
そのアプリは確かにカメラ使ってたわ
まあ、最後の更新したの5年前だし、今さら更新する気も起きないが keystoreなくなってたからパッケージ名変えて新しくリリースしなおしたわ プログラミング自体初心者です
https://i.imgur.com/xOqWnsi.jpg
https://i.imgur.com/GM51MNV.jpg
のような穴埋め(?)クイズのアプリを作りたいのですが、ドロップする場所の当たり判定はどういう風にしているのが一般的なのでしょうか?
例えば、茨城県の画像ならxは○○~××、yは○○~××なら正解、東京都なら~という風にしているのでしょうか? ドロップした図形の中心座標x、y
ドロップした図の正解の位置の中心 a、b
ドロップ終えたときの両者の距離が一定値以下なら〇 こういうのはAndroidSdkとか使わずにUnityとか使ってゲームプログラミングの流儀で実装している可能性がある なるほど
中心の距離で考えればいいんですね
unityが何だかよくわからないのですが便利な拡張ツール(?)みたいなやつでしょうか?
初心者なので、一つ一つ覚えて行こうと思います
とりあえず中心の距離で判断するのを作ってみます
皆さんありがとうございました Android Studioを32bitメモリ4Gのノートで試してみたけど厳しすぎますね
32bitで開発している方っているんでしょうか? >>537
nttxで安いノートPC買っても64bitだから幸せになれるよ
てか、Android端末よりプアな物使って開発は?な感じw いないですよね。広い世界のどこかにはいるかも知れないけど
実機でハローワールド表示するところまではやったけど重すぎて断念
昔これより低スペでEclipseADTで遊んでたから仮想使わなきゃいけるだろと
思ったんだが、なんでメモリこんなに食うのか。PC買います 超初心者です。
Excel VBAでマクロ組むくらいならできます。
Androidで作りたいアプリがあって、Studioのインストールと
Hello Worldまで完了させたくらいなんですが
ステータスバーを下にスライドさせたときに出てくる場所(名前わかりません)に
バッテリー情報を表示させるとした場合、何をどうすればいいのかわかりません。
サイトもいろいろ探してみたのですが、そこに情報を表示させる方法が見つからず
困っております。参考になるサイトなどありませんでしょうか。 ■ このスレッドは過去ログ倉庫に格納されています