1read 100read
2011年12月2期プログラム7: Androidプログラミング質問スレ Part16 (228) TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
8: NullPointerExceptionを「ぬるぽ」と呼ぶスレ6 (242)
9: 「Cでプログラミングするには人生は短すぎる」か? (289)
10: ふらっとC#,C♯,C#(初心者用) Part82 (448)
11: C言語なら俺に聞け(入門編)Part 93 (981)

Androidプログラミング質問スレ Part16


1 :11/12/18 〜 最終レス :11/12/24
このスレではAndroidSDK・NDKやAndroidマーケットに関する質問を扱ってます。
※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
【超初心者】プログラミング質問スレ【基礎】part5
http://hibari.2ch.net/test/read.cgi/tech/1303105502/ (dat落ち)
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
★★Java質問・相談スレッド146★★
http://hibari.2ch.net/test/read.cgi/tech/1309048597/
****関連リンク****
■ Android developers http://developer.android.com/
■ ソフトウェア技術ドキュメントを勝手に翻訳 http://www.techdoctranslator.com/
****前スレ****
Androidプログラミング質問スレ Part15
http://toro.2ch.net/test/read.cgi/tech/1321864986/

2 :
華麗に2ゲッチウィィゥ

3 :
前スレ>>1000
申し訳ない、書き間違いです
エミュ、実機とも2.3にて検証しています
2.2では実装方法を検討中ですが、そもそも2.3での実装が困難であれば
仕様自体を見直そうと思っています

4 :
>>3
コードを出せ

5 :
>>4
すいません
コード内容についてではなく2.3以降での実装について体験情報が欲しいのです
どのような方法であれ、可能であるならば検討する余地があるのですが
ちなみに今まではListviewを継承したクラスを作って、中身をあれこれいじる方法を
取ってきました

6 :
いちもつ

7 :
キーが押されたときに処理をするというプログラムですが
処理中にもキー入力を見るためKeyEventから直接処理を呼ばず
一旦タイマーイベントをONにしてそこから処理を呼ぶようにしています。
大雑把に抜き取ると次のような方式で書いてます。
一度目の処理はうまくいくのですが、勝手に2度目呼ばれたりフリーズしたりしてしまいます。
やはり自分の内部でfuture.cancelしてしまうのが無理があるのでしょうか?
なんとか自分(future)を一度で自己消滅させる方法ないでしょうか?
これをうまく動かすにはどう改善すればいいですか?

8 :
int flag;
Runnable task;
ScheduledExecutorService scheduler;
ScheduledFuture<?> future;
public void surfaceCreated(SurfaceHolder holder) { //初期
task = new Runnable() {
public void run() {
syori1();
}
};
scheduler = Executors.newSingleThreadScheduledExecutor();
future = scheduler.scheduleAtFixedRate(task,0,10,TimeUnit.MILLISECONDS);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) { //キーが押された
flag=1;
future = scheduler.scheduleAtFixedRate(task,0,10,TimeUnit.MILLISECONDS); //タイマーON
}
}
public void syori1() { //処理
if (future != null) future.cancel(true); //OFF
if (flag == 1) syori2();
flag = 0;
}

9 :
あ、省略してますが処理中はキーコードを見るだけで再び処理を呼ばないようにちゃんと書いてます。

10 :
>>5
「処理が実行されません」って具体的にどんな状態なんだよ
お前の言葉じゃ分からないからソースを見た方が早い

11 :
>>10
「処理が実行されません」って具体的にどんな状態なんだよ
言葉足らずで申し訳ありません
ソースは独自のアダプタやviewを使用しているので冗長になってしまうので全部は勘弁して頂きたい
listlayout.xml
<com.hoge.mListView
 android:overScrollMode="always"
 android:overScrollHeader="#FFFFFF"
</com.hoge.mListView>
//Listvew生成
mListView listView = ( mListView )findViewById( R.id.listView );
クラスmListViewではoverScrollByをオーバーライドして引数に明示的なスクロール幅を渡しています
エミュではListviewがオーバースクロールして余白が白く表示されます
実機ではオーバースクロール自体はしますが余白は白く表示されません
このような次第です

12 :
>>7です
今見てみてこれの問題ではなく、自分のコードの別のところの問題のような気がしてきました。
もう少し見なおしてみます。

13 :
>>前スレ
オーバースクロールの挙動は沙汰になったので今後のAndroidでは使われなくなるだろう。
>>前スレ
文字コード判別は http://jchardet.sourceforge.net/ とか使う。

14 :
>>7
Future とか使わずにHandler 作って postAtDelay やRemoveCallbacks した方が無難。

15 :
エミュレータが立ち上がらん!
ウザい!

16 :
SDK が4.0対応になって、3.0以上のAPI であるactionbarとフラグメントが
そのまま1.6以上のバージョンの端末に使えるようになったんですよね?
あと、タッチイベントの処理方法変わった?
なんか3点押してもタッチイベント2点しか発生してないし。

17 :
>>15
しょうがないので avd を作り直したら解決した。
プラグイン更新してからなんか調子悪いなー

18 :
>>16
そんな事実はない。

19 :
>>17
お前の環境だけやろ、知らんがな。

20 :
>>16
3点以上のマルチタッチはアップルの特許に引っかかるから今後なくなるとか。
まぁそれとは関係ないとは思うけど。

21 :
>>14
handler.postDelayedを使うとdispatchKeyEventが呼ばれなくなってしまいました。
キーを受け付けてません。

22 :
いやサンプルの方動いたから実装わるいのか…

23 :
ViewGroupにTouchEventを取得させてフリックしたときは子ViewにTouchEventを送らない
フリックじゃなかったときには子ViewにTouchEventを送る
みたいなことって出来ますか?

24 :
>>13
オーバースクロール件、ありがとうございます
今後のことも考えてインターフェイスの変更を検討することにします

25 :
このスレって
${ANDROID_BUILD_TOP}/frameworks
以下の質問ってあり?

26 :
アプリの再インストールを行ったとしても、同一の値を生成(取得)する方法ってありますか?
ANDROID_IDやSIM情報等の端末固有情報は利用せずに、自前で端末を識別するIDを生成したいと考えています。
SDカードにUUIDを格納したファイルを格納するという方法は検討済みです。
iPhoneでの実現方法は見つけました。
http://akisute.com/2011/08/udiduiid.html

27 :
Android 2.1のWebViewで、ロードをキャンセルするにはどうすればいいんでしょう?
WebViewClient.shouldOverrideUrlLoadingでtrueを返すのは
フォームでSubmitした時に呼ばれないのでダメでした。

28 :
前スレ>>849
可能であれば一部だけでもソースを見せてもらえないだろうか。
リモコンアプリは自分も興味があって一度は作ってみたい。

29 :
>>26
KeyChain APIなら4.0以降にあるよ。
でもさ、そもそもファクトリーリセットで消えるし、
「端末を他人に譲渡してもまだユーザ識別に使われる」ならそれは倫理上アウトじゃね?

30 :
Android2.2でグーグルマップをつかったアプリを開発しています。
そこで、グーグルマップに自分の位置を表示させるとき、
○で表示されるんですが、△(進行方向がわかればなんでもいい)
で進行方向がわかるようにしたいのですが、どのようにやったらいいのでしょうか?
overlayで座標を、location.getLatitude()などで取得し、
画像をoverlayし、beringから角度をだして、画像を回転
みたいな感じなのでしょうか。
よろしくお願いいたします。

31 :
>>30
地図自体を回転表示(常に向いている方向は上)にした方が良さそうな気がする。

32 :
>29
ありがとう
端末譲渡時には、ほとんどの人は初期化してくれそうじゃないかな。
安易に利用制限(一定期間)を回避されないようにしたいんだけど、良い方法ある?
今はインストール時にUUIDを割り当ててる

33 :
androidって自作アプリからURLリンクを踏んだらブラウザが立ち上がって飛ぶみたいなことできる?

34 :
>>32
個人的には誓約事項(仕様)をアプリ初回起動時に表示するか
個人で手動バックアップする仕様のがいいと思う
>>33
できる
詳細はインテントでググれ

35 :
>>31
ヘディングアップですか?
そうですね。ヘディングアップができれば、
つかいやすさも向上するのでいいと思いますが、
どのようにしたらよいのでしょうか。

36 :
実験程度までで実用的なリモコンアプリ作るのは難しいんじゃないか?
今のTVってメーカー別に独自機能多いし・・・・
REGZAだけでも
・設定画面の呼び出し
・番組一覧表示、ミニ番組表表示
・Dデータ
・二画面表示
・一時停止、巻き戻し、早送り、再生、スキップ、CMスキップ
・3D表示のON/OFF
・今すぐニュース
・クイック
・青、赤、緑、黄
と、よく使うのに仕様が公開されてない信号がこれだけあるぞw
これら網羅しないと電源ON/OFF、チャンネル変更、音量変更しかできない不便なリモコンになる・・・

37 :
Arduinoで受信させればいいよ

38 :
受信側はないからリモコンコードを用意するのが大変だよね。
リモコン関連って送信の方が受信よりずっと楽だからな。
ところでSensorなんだけど現在の値って取得しようがない?
registerListenerしてから変化するまでonSensorChangedこなくて判らない。
困ってるのはTYPE_LIGHTなんだけど

39 :
端末の対角画面長を取得するにはどうすればいいですか?
Galaxy Nexusなら4.65、IS03なら3.5、GALAXY Tab 10.1なら10.1が欲しいです

40 :
その情報は本当に必要なの?

41 :
>>40
端末がタブレットなのスマートフォンなのか判断したいんです
対角画面長が取得できれば7インチ以上ならタブレット、以下ならスマホとして処理できそうだと思いました
他にいい方法あるでしょうか?

42 :
>>39
画面サイズなら
getMetricsでできるんじゃない?

43 :
>>36
全てを入れる必要はないんじゃないか?
よく使うような機能だけ網羅してればいいような気がする
REGZAのリモコンコードを総当たりで調べていたんだけど、
PRESETコマンドに当たって2回ほど設定を全部初期化してしまったよw

44 :
とりあえずgetMetricsを使って
(widthPixels^2 + heightPixels^2) / (densityDpi^2) >= 24.0
で判定することにしました
densityDpiの値が320とか160とかざっくりした値でしか入っていないのがなんとも気持ち悪いですね・・・

45 :
>>28
ttps://sh-dev.sharp.co.jp/android/modules/download/?/api_irrc
これのサンプルの部分ぶっこ抜いてデータをぶち込んだだけだよ
public void onCreate(Bundle savedInstanceState) {
(略)
irc = new IrRemoteController(this);
irc.setCarrier(132, 132);
irc.setPulse0(IrRemoteController.PPM_HIGH_LOW, 500, 500); // 論理パルス0
irc.setPulse1(IrRemoteController.PPM_HIGH_LOW, 500, 1300); // 論理パルス1
}

public void onClick(View arg0) {
IrRemoteControllerFrame ircf = new IrRemoteControllerFrame();
byte[] data =new byte[] { 0x40, 0x04 ,0x01,0x00,(byte) 0xbc,(byte) 0xbd};//電源

ircf.setLeader(3600, 1700);
ircf.setFrameData(data, 48);
ircf.setRepeatCount(IrRemoteControllerFrame.REPEAT_INFINITE);
ircf.setTrailer(500);
ircf.setFrameLength(65400);
IrRemoteControllerFrame[] block = new IrRemoteControllerFrame[]{ircf} ;

try{irc.send(block, IrRemoteController.REPEAT_INFINITE);}catch(Exception e){}
}
かなり判りにくいけど
誰かbyteから1と0の数を数えるメソッド作って、俺にはその辺ようわからん

46 :
追記
よくよく考えると、実機がシャープじゃないとあれだけどね

47 :
PreferenceActivityで、
PreferenceScreenに右側に下三角のマーク出すこと出来ないでしょうか?
setSingleChoiceItemsのAlertDialogを表示させたいのですが、
PreferenceScreenで表示させると下三角マークが出ないので、なんだか嫌なんです。
どうにかして、下三角マーク付きのパネル?からAlertDialogを出す方法は無いでしょうか?

48 :
In-app Billing の仕組みを使わずに、独自にアイテム課金のシステムを構築するのは許可されているのでしょうか?

49 :
7月の段階で民主党が2兆円の復興予算を組んだとき
自民党が要請した復興予算は累計17兆円
自民党の17兆が7月時点でに決定されていたのなら
今の日本はもう少し違って居た筈だ
ちなみに関東大震災のときは復興予算として現在の価値にして150兆円以上を組んでいた。
この事実を知れば、予算の規模の小ささ、ましてや増税なんて奇知涯にも程があると思わざる負えない
帰化人だらけの民主党に復興なんて はなっから無理な話なんだよ

50 :
リファレンス的に使える本を探してるんだが、何かお勧めある?
なるべく軽いやつで

51 :
>>50
http://developer.android.com/intl/ja/reference/android/package-summary.html

52 :
>>51
作業環境がノートだからできれば本で欲しいんだ
@英語だととても読むのに時間がかかるんだ

53 :
>>45
ありがとう!
ソニエリだけど参考にさせてもらいます!

54 :
>>52
はっきり言って、英語のリファレンスじゃないとまともに理解できんぞ。
日本語の情報って、あくまでも「日本語訳」だから誤訳ばかりだし。
リファレンスの英語はMSDNもAndroidもシンプルな英文しか使われていないから
読むのなんて大したことない。怖がり過ぎ。

55 :
>>35
それを考えるのが君の仕事。
冷たく聞こえるかも知れんが、頑張って下さいね。

56 :
>>54
わかった、とりあえず頑張る。 thx

57 :
あらゆるAndroidデバイスが置いてあって自由にデバッグ用に使えるラウンジとかないのかな
端末ごとの差異を吸収するのが大変すぎる
GalaxyNoteで使ったら強制終了しました!とか報告されてもどうやって再現しろってんだよ

58 :
>>57
GalaxyNoteを持ってる人を金で雇うとか。
ちなみにオイラはHTC DesireHD使ってる
動作チェックしてもらいたい人は1回100円でひきうけようじゃないかw

59 :
とか半ばノリで書いてみたが〜、むむむ…新しいビジネスの予感がしてきたYO!
サイト作って会員登録させて行えばいけそうなきが・・・
ヤフオクの評価みたいなシステム導入で
不正プログラムを掴ませようとする悪質ユーザーの排除もできるし
利用者いそうならマジでつくってみようかしら

60 :
レンタルサービスは普通にあるでしょ
高いけど

61 :
レンタルテストサービスはガラケー時代から普通にあるよね。
時間単位で全ての端末をテストに使えるってやつ。
それなりにお金掛かるからテストの流れとかきっちり決めて
さっさかさっさか終わらせないと大変なことになった。

62 :
>34
回答ありがとう。

63 :
>>47
ListPreference

64 :
>>59
面白いアイデアだとは思うけど、
・ウィルス入りをテストさせられるリスク
・有料アプリをばらまかれるリスク
があるな。
あと、信頼度0でこれに参加してくれる人がどれくらいいるかだな。

65 :
いや、だから「端末 テスト」でぐぐれば一杯でてくるんだって

66 :
>>65
そういうんじゃなく、端末持ちの一般ユーザとテストしたい開発者の
マッOサイトみたいなののこといってるんじゃね?
テスト環境のサンドボックス化とテストの完全自動化、検証結果の改ざん防止がきっちり出来れば
わりと面白い試みになるかもしれない。

67 :
単体の自動化はいいとして
実機つかった懸賞したいのって受け入れテストレベルのことだろうし
自動化は結構むずいんじゃないかなー。
レイアウトが微妙です、なんてのはSSとかのエビデンスで判断かな。

68 :
Androidのサンプルコードでよく変数名にmXxxxと
頭にm着いてますが、これってなんのm何でしょうか?

69 :
memberじゃね

70 :
Androidアプリを作る時のViewって
やっぱりSurfaceView使わないとゴミアプリ認定なんかな?

71 :
国民に罵声を浴びせられ駅前交番に逃げ込むテレビアカヒの取材班 12/19正午 新橋駅前 
http://blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/111219_124643_ed.jpg
        ,:'  .l .::;',. :::;/..://:: /,':/  ', l、 .i  ヽ
.          ,'  ..::| .::;',' :;:','フ'7フ''7/   ',.ト',_|, , ',.',
       ,'   .::::::!'''l/!:;'/ /'゙  /     '! ゙;:|:、.|、| 'l
.         ,'.  .:::::::{ l'.l/  、_  _,.      'l/',|.';|
       l  :::::::::::';、ヾ      ̄     `‐-‐'/! ';. '
.         ! :::::::::::/ `‐、        ゝ   |'゙ |
       | ::::::::/   \    、_, _.,.,_ ノ::: !  野田政権が早く終わりますように
       |::::/.     _rl`': 、_     ///;ト,゙;:::::./
..      `´      /\\  `i;┬:////゙l゙l ヾ/
                ,.:く::::::::`:、\ 〉l゙:l  / !.|
.            /:.:.:.:\:.:.:.:.`:、ソ/:.:|    | |   19日の報道ステーション
           /.:.:.:.:.:.:.:.:.:\:.:.:.:У:.:;l     http://livedoor.blogimg.jp/kingcurtis/imgs/e/d/ed2dbc66.jpg  

72 :
Androidアプリの開発やプログラミングって
Android端末持ってないとダメ?

73 :
>>72
無くても出来る。開発環境は無料で公開されてるし、
公式でエミュレータも配布しているので動作確認も問題ない。
・・・が、エミュレータは3段ぐらい環境をエミュレートして動いてるので
死ぬほど遅くてとてもじゃないけど完全な動作確認は無理といっていい。
なので、出来るが実機なしはお勧めしない。

74 :
やっぱ実機なしでは無謀なんですかね
困りました(´・ω・`)

75 :
>>74
環境セットアップしてエミュレータ起動までは
どっかのインストールガイドみながらやりゃすぐだから試してみたら?
耐えられるならそれでやればいいし。

76 :
ほぼ実機が1種類のあいぽんがうらやましいですな
グーグルかキャリアが端末全部用意してテストセンターみたいなの作ってくれYO

77 :
その前に、そういうものが無いのかキャリアに問い合わせてはみたのか?

78 :
royがうざすぐる

79 :
PC並に機種間の互換性が高くなればいいんだけどね。
>>76
有料のならあるんだからそれで我慢しる。
キャリアも実機のエミュレートデータ配布してるからそれで我慢しろってことなんでしょな。
エミュが重い理由は↓だからDalvik仮想マシンを直接 x86 上で動かせるエミュレータでも出てくりゃなんぼかましになるのかな。
http://slashdot.jp/journal/506853/Android-Virtual-Device-AVD-%E3%81%AE%E8%B5%B7%E5%8B%95%E3%81%8C%E6%BF%80%E9%87%8D

80 :
>>74
というか実機くらい適当に用意しろ
今持ってる携帯を他所に移すだけでほとんどタダで手に入るし

81 :
1機種ぐらいならなんとかなるけど
複数はちと辛いよね。きっちり売るつもりならテストセンター金はらって利用しろとは思うけど。
無料配布ならユーザをテスターにすりゃいい

82 :
試したこと無いけどこういうので頑張ってみるとか。
http://www.android-x86.org/

83 :
スクエニとかバンダイナムコとかが独自のAndroidマーケットを作っていますが、
課金システムのベースはやはり In-app Billing なんですかね?

84 :
だいたい画面サイズを240×320から540×960とかまで対応させろっていうのが無理すぎる
ファイル分ければできるけどマンドクセエw

85 :
いまどき240x320なんてPocketWifiくらいじゃないの?
切り捨てても自分にはデメリット無いな。
320x480だって切り捨てていいと思う。

86 :
>>76
vmware買収して、まともな速度のエミュを、公開してくれれば、解決する。

87 :
すいません。教えてください。
広告をつけようと思ったのですが、うまくいきません。
Adlantisの広告をつけようと思い、adlantis.jarを
ビルド・パス→ライブラリー→外部Jar追加で追加し
XMLに
<jp.Adlantis.Android.AdlantisView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_weight="1"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:gravity="center" />
と追加、Manifestに
<uses-permission android:name="ACCESS_NETWORK_STATE" />
<uses-permission android:name="INTERNET" />
と追加したところ、Graphical Layoutで
「The following classes could not be instantiated:
- (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.
Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse」
というエラーが発生し、表示することができません。。
わかる方いますか??

88 :
Adlantisは使ったことないけど、エミュだからじゃないの?
テストってどこかで宣言しないとだめなんじゃ

89 :
これで独立できる
売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://bit.ly/iLIpJa
http://bit.ly/m7nkew

90 :
ARMで動くARM用VMwareはあるんだから、開発親機をARMにするってのが
一番手っ取り早いだろうな。

91 :
ARMでうごくjava seとeclipseがいる

92 :
ARM機を用意するぐらいなら実機一台買ったほうが早いわい。

93 :
>88
87です。
実機でテストしましたが、コンパイルは出来ましたが、広告は出ませんでした。
ちなみにadmakerでも同じ現象です。このようなケースはあまりないのでしょうか?ググっても全然わかりません。

94 :
現在、アプリを開発しているのですが、
ユーザーがアプリ実行中にホームボタンを押してしまった時に備えて
onUserLeaveHint()メソッド内でfinish()してアプリが終了する様に
したのですが、onUserLeaveHint()を実装したとたん、アプリが起動した
直後に終了してしまいます。なにか良い手はないでしょうか?

95 :
本当にホームボタンを押されたら終了しなきゃいけないアプリなのか?
まぁとにかくブレークポイント使って起動時の動きを追跡してみるべし

96 :
>>95
それほどのアプリではありませんが・・・
ちなみに↓のコードでトーストが表示されて起動&終了してしまいます。
@Override
public void onUserLeaveHint(){
Toast.makeText(this, "onUserLeaveHint", Toast.LENGTH_LONG).show();
finish();
}

97 :
>>96
4.0.3のエミュで動かしてみたけど正しく動いたよ

98 :
>>97
ありがとうございます。私も他のアプリで試してみたところ、
正常に動作しました。うまく行かない方のアプリは、
マップアプリなのですが、とても困っています。

99 :
一瞬だけ別のActivityを起動してすぐに戻ってくるような仕組みがあると当然うまくいかないね。
必要ないことをやろうとして苦労してるとしか思えないんだけど。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
8: NullPointerExceptionを「ぬるぽ」と呼ぶスレ6 (242)
9: 「Cでプログラミングするには人生は短すぎる」か? (289)
10: ふらっとC#,C♯,C#(初心者用) Part82 (448)
11: C言語なら俺に聞け(入門編)Part 93 (981)