電源ファンから異音が...→交換しました.

突然ですが,先週あたりから自分が使っているメインPCの電源(MODU87+ EMG800AWT)から洗濯機のような異音がするようになりました.

音は日に日に大きくなり,非常に煩わしい音で,夜中に録画などで起動するとそれで起きるほどでした.(睡眠妨害つらい...

 

最初はケースファンかな?と思っていたのですが,蓋を開けると電源からすごい音がしていたので,よりによって電源かよ...orz と思いながら交換することにしました.

(もし,まねをしようという物好きな方が居られましたら,この行為は完全にメーカーの保証外になりますので,自己責任でお願いします.)

 

この電源のファン,MTBFが10万時間と謳っていた割には3年でベアリングが摩耗するとか....まだ1/10位しかつかってねぇよ...

 

そんな愚痴を言いながらPCの蓋を開けます.

下に分けられているのが電源です.これが睡眠妨害の諸悪の根源です.

f:id:ABS104a:20141108231735j:plain

取り出した様子です.ネジ止め箇所が8つあるので全て外します.

f:id:ABS104a:20141108184615j:plain

ファンカバーを取り外した様子です.金色のファンが見えますね.

f:id:ABS104a:20141108184620j:plain

全てネジを取ると上を覆っているカバーが外せます.プラグインコネクタ側から上に引っ張ると割とすぐ取れます.

 

カバーを外した様子です.ファンのお目見えです.

f:id:ABS104a:20141108184657j:plain

ファンも取り外します.画面右上にファンを取り付けている3ピン端子があります.

(こう言うの見るとテンション上がりますね!!)

f:id:ABS104a:20141108115513j:plain

アップ画像です.画像中央右らへんに端子っぽいのがあるのがおわかり頂けるでしょうか?

f:id:ABS104a:20141108184718j:plain

 

この画像を見て気付かれた方は鋭いですね..これ実はマザーボードなどで採用されているファン用端子とは違っていて,おそらく電子工作用の汎用3ピン端子.しかもピンアサインも違う事が判明しました..

 

心の声(えー,,マジかよ...めんどくせぇ...)

 

という事で,変換ケーブルを自作しました.

ここでいつぞやに買っておいたファン用延長ケーブルを取り出し,適当な長さに切断して,金ぴかのファンの接続端子と繋げます.

f:id:ABS104a:20141108185126j:plain

 

切断したケーブル同士を半田ごてと熱圧縮チューブを使用してくっつけるとこんな感じになります.

f:id:ABS104a:20141108191202j:plain

これで何とか汎用のファンを電源ファン端子として使用できるようになりました..

 

よし,これでファン買って接続すれば行ける!!(`・ω・´)

 

近くのPCショップで,最初に入っていたファンと同じ径のファン(14cm角ファン)(AINEX CFZ-140S OMEGATYPHOON 140mm 超静音)を購入しいざ設置したところ,,,,

 

あれ?ねじ穴があわない・・・・(汗

 

見直しましたが元ファンと大きさは全く同じなのにねじ穴の場所が違ってる・・・

よく見ると元のファンには通常のネジ穴とは別に内側に穴が空いていることが分かります...

見落としてました...

f:id:ABS104a:20141109140255j:plain

 

心の声(え,,嘘やん...なんでこんな無茶設計なんだよこの(ry)

 

しょうが無いので,どこのご家庭にも必ず1台はあるボール盤を使って,4.6mm径の穴を空けます.

f:id:ABS104a:20141108200937j:plain

はあ,,何とか収まった...

f:id:ABS104a:20141108223655j:plain

後はケースをつけてネジ止めをして完成です.

 

心の声(うっひょおおおおおおおおおお!!!)

 

もし電源ファンを交換される際には,このように落とし穴がある場合がありますから,ちゃんと調べてからやりましょうね.

研究室にOculusRiftDK2が届いた その3

立て続けに記事を書いております.ABS104aです.

さて,前回記事で一通り見てもらった際の感想として,いくつか紹介しましたが,今回は,描画に関してカメラで撮影すると言うことを後輩にやってもらったのでそれを紹介しようかと思います.

 

後輩の測定結果スライド

Oculus Rift 遅れ計測

 

内容としては,GuppyProというハイスピードカメラを用いて,OculusRiftの描画の様子を撮影したということです.

 

f:id:ABS104a:20140920142040j:plain

Oculus Rift DK2

 

f:id:ABS104a:20140920142148j:plain

Guppy Pro

 

f:id:ABS104a:20140920142215j:plain

実験風景です.

Oculusの片目部分にGuppyProを設置,固定し,demo映像を投影したものを撮影した.

f:id:ABS104a:20140920142330p:plain

取得画像を時系列で連結させたものです.

 

撮影時のカメラ解像度は656×6,522.1Hzで撮影してます.

自分なりに解釈したことを書こうと思います.

 

上記の画像から分かる事としては,ある一定幅を持った領域が描画されて消えるという事でしょうか.

一般的なラスタースキャンのディスプレイでは左上から描画し右下まで描画を行う訳です.その際,一番左上のドットは右下のドットが描画されるまで発光し続けているのですが,この画像を見る限り全てが描画される前に消えてしまっています.DK2は水平スキャンですから,水平に200弱ぐらいの幅のラインを描画すると後ろから消えていくわけです.これがOculusの発表であった黒挿入なのではないかと思います.

これが,残像やゆがみに繋がっているのではないでしょうか?

 

自分はHMDを専門で研究しているわけではないため,知識不足なこともあり,現状の理解はこんなところです.

 

何か意見や突っ込み等ありましたらTwitterの方(@ABS104a)までいただけると助かります.

 

また何か分かったことがあれば書こうかと思います.

今回はここまでです.おつかれ様でした.

研究室にOculusRiftDK2が届いた その2

前回記事の続きです.

本記事では,OculusSDKに付属しているDemoを見てみましたので,その感想とか思ったことを書きます.

f:id:ABS104a:20140920133333j:plain

Oculus world demoですね.仮想世界に家があり,その中を自由に移動出来るというものです.

 

まずかぶってみた時の第一印象として「すごい」と感じました.このただ一言です.

OculusRiftDK1もかぶって見たことがあって,その時は視野の広いHMDだなぁという印象で確かにインパクトは大きかったのですが,DK2はHMDだというよりは「自分が電脳世界にいる」そんな印象を与えてくれるできだと思います.

(この差に心理的に与えるなにか大きなブレイクスルーがあるのでしょうか・・?)

 

いろいろな人にかぶってもらいましたが,まず一言目には全員すごいという事を言っていました(笑)

 

まず驚くことに首を振った時の遅延をほとんど感じません.ほぼ遅れ無しで追従してきますので違和感を感じませんし酔いにくいです.

また,首を高速で振った際に生じるであろう画面のゆがみみたいなものもあまり感じないように思います.これは有機ELの恩恵なのでしょうか.後々調査が必要だなと感じます.

 

解像度の向上の恩恵も大きいです.やはり視線の中心部ではドットはみえるもののDK1と比較すると明らかに違う事が分かります.周辺部ではすでにオーバースペックなドット数の様な気もしますが,量産パーツを使っている事を考えるとしょうが無いですね.

 

これだけ良いことが多いDK2ですが,課題もみえてきます.

 

このDemoを見ていて,実際には複数人の人にかぶってもらったのですが,意見として残像が多くある.特に首を振った際にしっぽのような残像がみえるという事をよく聞きました.

自分で見てみても,特にコントラスト差が大きい所(ex.窓枠と外の背景,絵画など)で顕著に見られますね.首を振ってとまった際によく観察できますし,首を右から左に振った時と左から右に振った時ではその感じ方が変わるという点も気になります.おそらく描画のスキャン方向が影響しているのではないでしょうか...

また,残像について色差を感じるという意見も多く見られました.(周辺部ではその影響が大きいのでは?)さらにこれが不快感の要因にもなり得るという事を言っていた方もいました.

 

自分がかぶっていてほかに感じた点として,このdemoではおそらく自分の頭の上に光源があるのか,家の中の天井を見ている時に首の振りによって影の位置が変化して残像を増長させているような印象を受けました.

あと,これは当たり前なのかも知れませんが,矢印キーなどで他動的に視点を動かされると途端に酔いますね.すぐきもちわるくなります.

車を運転している人は酔わないけれど,車に乗っている人は酔うというのはまさにこういうことなのかなと感じました.

 

このような感じで一通り見てもらい,意見を得ることができましたので,Oculusの画面描画の様子についてカメラで何とか撮影できないか少し見て考えてみようと思います.

 

とりあえず本記事はここまで.

おつかれ様でした.

研究室にOculusRiftDK2が届いた

僕の所属している研究室では主にVR系の研究を行っています.

HMD系の研究についても関わっているため,DK2もなかなかホットな事柄であります.注目度は高いですね.

 

そんな時,研究室のOBの方からOculusRiftDK2を貸して頂けるという話を聞き,研究室に届きましたので,まずはその導入記事です.

本来は研究室HPに書くべきではあるのですが,訳あってこちらに書いています.

 

貸して頂いた @izm (Twitter)さんありがとうございました.この場をお借りしてお礼申し上げます.

 

f:id:ABS104a:20140920124346j:plain開封しています.(外装)

 

簡素なパッケージですね.(DKなのでそこはね・・・)

 

DK2の特徴として

解像度の向上(FullHD)

水平スキャンによる描画

有機ELの採用

ディスプレイが75Hzでの動作

ジャイロセンサと赤外線トラッキングによる位置,姿勢制御

こんなところでしょうか.研究室としてはリフレッシュレートの向上による残像感とポジショントラッキングの精度,ジャイロの性能向上と有機ELの組み合わせによる遅延の量について気になるところではあります.(それは追々...

 

DK1では,ssdを2枚重ねた位のコントロールボックスが外に出ていたのですが,DK2では本体に統合されずいぶんとスッキリしました.

 

中には,

本体

レンズセット

ポジショントラッキング用カメラ

ACアダプタ

カメラ用USBケーブル

カメラ同期用ケーブル

DVI→HMDI変換アダプタ

が入っていました.アダプタやACアダプタの形状変換プラグなども付属していてかなり親切です.

 

f:id:ABS104a:20140920124256j:plain

DK2本体です.DK1よりもデザインが丸くなりより洗練されています.

f:id:ABS104a:20140920124331j:plain

コントロールボックスは廃止され,カメラなどの端子接続用の小さなボックスだけが残っています.

f:id:ABS104a:20140920124315j:plain

赤外線ポジショントラッキング用のカメラです.赤外線フィルタの銀色がまぶしいですね!!

f:id:ABS104a:20140920124520j:plain

説明書です.英語ですが図解で説明が付いているため設置等で迷うことはなかったです.

f:id:ABS104a:20140920124305j:plain

今回使用したPCです.DK2では解像度がFullHDになった事,リフレッシュレートが75Hzになった事から,かなりのスペックが要求されます.

PCスペックは

CPU:Corei7 3540M

Mem:8GB

GPU:QuadroK2000M

OS:Windows7 Pro 64bit

を使用しました.

 

PC上での設定ですが,主に

楽しく使う Oculus Rift DK2

を参考にしながら設定を行いました.

僕が導入した時は,Oculus Serviceが起動していないことによって認識しないという事でハマっていたのですが,最近のVersion(2014/9/4更新のv0.4.2)では解消されているようです.

 

Demoを起動し見てみましたので,次記事でその感想とか感じたことを書こうと思います.

 

数字,文字リテラルを使わずにHello Worldを標準出力する方法

こんばんはABS104aです.

 

今日は,CodeIQで見かけた,

標準出力に Hello World と出力するプログラムを作成して下さい。 ただし、数値・文字・文字列リテラルを解答に含めることはできません。

という内容をみて,ちょっとやってみようかなと思い書いてみました.

ちょっと考えて見たのですが,僕にはこの方法しか思い浮かばなかった・・・orz

 

もっと良い方法があるような気もしますが,こんな方法あるぜ!こっちの方がよくね?と思った人は教えてくださいm(_ _)m

以下,コードです.

Systemから現在の時刻を取ってそこからゼロを作り出しています.

その後は数値をインクリメントして文字コードを作り出してアスキーコードを元に変換するという方法です.

 

追記,これちゃっかりリテラル使ってるので,無しです.代替案考えます.

 

/**
     * @param args
	 */
	public static void main(String args) {
		long hoge = System.currentTimeMillis();
		int zero = (int) (hoge - hoge);
		int tmp = zero;
		int one = ++tmp;
		int two = ++tmp;
		int three = ++tmp;
		int four = ++tmp;
		int five = ++tmp;
		
		int base = four * four * four + (four * (four + four));
		byte space = (byte) (four * (four + four));

		byte h = (byte) (base + two * four);
		byte e = (byte) (base + five);
		byte l = (byte) (base + four * three);
		byte o = (byte) (base + five * three);
		
		byte w = (byte) (base + five * four + three);
		byte r = (byte) (base + three * (five + one));
		byte d = (byte) (base + four);
		
		byte hello_world = {h,e,l,l,o,space,w,o,r,l,d};
		try {
			System.out.println(new String(hello_world, "US-ASCII"));
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
	} 

PSカンファレンスまとめ

PSカンファレンスまとめです.

カンファレンス聞きながら適当にメモった内容をコピペ

タイプミスとか誤植はあんまり直す気無いのでご了承ください.

 

PSVita 新型

PCH2000Wifiモデル

 

特徴

219g,15mm 20%薄く15%軽い

カラバリ6色

白青黄ピンクシルバー黒赤

5インチ液晶ディスプレイ

1GBMemory内蔵

バッテリ1時間増える

6時間

マイクロUSBTypeB採用

18980円19929円

10月10日発売

本日より予約受付

 

メモリーカードの値段改定(値下げ

 

10/10に64GBのメモリ発売

 

 

共闘先生(文化祭

バンナム

ガンダムブレイカー 10/31発売予定

ガンダムブレイカースターターパック

ホワイトの新型,限定デザイン版

 

ゴッドイーター2

11/14 発売

本体同梱版 25960円 シルバー限定デザイン

 

ソウルサクリファイス デルタ

2014年3月発売予定

東京ゲームショウで試遊可能

 

セガ

PSO2 データを消すサービス謝罪

新プロジェクト

PSVita専用

ソフトファンタシースターノヴァ

開発tri-Ace 2014年発売

 

その他タイトル

ラブライブ SchoolidolParadise 2014年5月発売予定

戦国無双 2014年

テラリア

ダンガンロンパ 絶対絶望少女 TPS

 

ダンガンロンパ ソニーストア限定グッズ発売予定

 

オトメイト 共同プロジェクト

オトメイトスペシャルパック

AMNESIA,薄桜鬼 特別仕様 21000円

12/19発売予定

 

その他オトメイト系ソフトの数々

今日より予約受付

 

ファイナルファンタジーⅩ Ⅹ-2

後日に発売日発表予定

 

PlayStationPlus 90日利用権プレゼントキャンペーン

 

MikuMikuHockey 血迷ったか明日より配信予定

 

PCH1000は3gモデルは販売継続

 

PlayGamePack 10/31日発売予定 24129円

限定版,ソフトつき

10/10日にベスト版を数々出す

 

せんの奇跡

サカつく

ダンガンロンパ1.2

パワプロ2013

ガンダムブレイカー

AkibaSTRIP

ゴッドイーター

アトリエ

三国無双

ドラゴンズドグマ

FF

初音ミクF2

艦これ←まさかの

フリーダムうぉーず

テラリア

 

----------------------------------------------

PS3カンファレンス

 

ジョジョ50万セール

 

アーマードコアV

rain 10/3

GTAV 10/30

テイルズオブシンフォニア 10/10

BEYOND 10/17

ブレイブルー 10/24

BOOKSPELLS 11/7

ロックスミス2014 11/7

信長の野望 11/14

モンハンフロンディアG 11/20

FF ライトニング 11/21

スパロボOG 11/28

THEWALKINGDEAD 12/5

バッドマン 12/5

ドラッグ オン ドラグーン3 12/19

エースコンバット 2013配信予定

戦国BASARA4 2014初等

ジェイスターズビクトリーバーサス 未定

ダークソウルズ2 未定

 

GRANTURISMO6

ポリポリ?

 

新型レンダリングエンジンを採用 新物理シミュレーションの刷新

1200台の車

 

オンライン機能の強化

37の警官76レイアウトのコース

オンラインで追加される

 

PlayStation→スマホ,タブレット,PCからもアクセス可能(コミュニティ

 

ここでPV

 

車メーカー各社協賛

 

12/5日発売予定

15周年アニバーサリーボックス 同時発売(限定版

本体同梱版 25980円

 

-----------------------------------------------------

PS4カンファレンス

 

思い立ったがコンタンツw

 

2014/2/22日発売予定

↑コンテンツを充実させるために意図的な戦略

通常版    41979円 

カメラ同梱版 46179円

 

初回限定版

FirstLimitedPack

DLソフト,Knackと1年延長保証つきで値段据え置き

 

ディスクベースで4タイトル,DLコンテンツで4タイトル

音楽,早漏れ

 

KNACK クラッシュバンディクーの監督

映画っぽいPV

 

 

ThePlayRoom 

PSカメラを使ってMR

新感覚ゲーム

 

タイトルラインナップ

アサシンクリード

着るゾーン シャドーFALL

ドキドキユニバース

取って問プラス麻雀

ドライブクラブ

KNACKナック

ニードフォースピード ライバルズ

ニコリのパズル4

バトルField4

FIFA14

HOHOKUM

RESOGUN

ウォッチドッグス

三国無双7with 猛将伝

 

ここまでロンチ

ここから 未定

 

SECONDSON 春

PSYCHOBREAK 春

シーフ

ストライダー飛竜

ダイイングライト

FF,オンライン

ウィッチャー

キングダムハーツ

THECREW

THE ORDER 1886

FF XV

ファントムブレイカーバトルグラウンドオーバードライブ

メタルギア solidV

 

FFオンラインエオルゼア は発売日よりβテスト可能

 

セガ

龍が如く維新 2/22 ロンチタイトル PS3版と同時発売

ガンホー

リリィベルガモ 新作

ねずっち登場

 

ナチュラルドクトリン PS3,PS4,PSVita

ギルティGEAR 2014年

レベル5 ワンダーフリック PS4

地球防衛軍 EDF 

ドリクラ

機動戦士ガンダム

アイドルマスター

deepdown オンラインゲーム

 

PS3→PS4へのアップデートプログラム (有料

 

10/5日予約開始

 

------------------------------------------------

PSVITA TV

6cm×10cm

VIDEO,ネットワークサービスを提供

TSUTAYATV,hulu,ニコニコ動画

PSP,PSVita,ゲームアーカイブス

PS3コントローラで遊ぶことが可能

 

ワイヤレスHDMIでPS4から無線でゲーム出来る.

11/14発売 9480/9954円

 

8GBメモリ,コントローラ同梱版 14994円

 

 

Twitter4JにてOAuthするプログラム(PINコード,Android4.2以上対応版)

こんにちはABS104aです.

今回はTwitter4Jを用いてAndroidでOAuthを行うプログラムを書いてみたので紹介しようと思います.

 

OAuthはTwitterAPIを使うには必ず必要となった認証です.以前はBASIC認証も使えたのですが,今ではセキュリティ上の理由からアプリケーションにパスワードを渡さなくて済むこの方法が主流になっています.

 

環境はEclipse4.2 ADTで,開発OSはWindows8 64bitです.

とりあえずAndroid用のプログラムを作成して,ビルドパスの構成から,Twitter4Jを読み込んでおきます.

 

このアプリケーションはインターネット通信を必要とするため,まずAndroidManifest.xmlを編集して,

<uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>

を追加しておきます.通信を行う旨の許可が必要ということですね.

 

また,メインのレイアウトファイルはこのように

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".OAuthActivity" >
 
    <Button
        android:id="@+id/button_showURL"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:text="ShowWebPage" />
 
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText"
        android:layout_alignRight="@+id/button_showURL"
        android:text="Oauth" />
 
    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button_showURL"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="26dp"
        android:ems="10"
        android:inputType="number" >
 
        <requestFocus />
    </EditText>
 
</RelativeLayout>

ウェブサイト表示用のボタン,PINコード入力用のEditText,PINコード読み込んでトークンを取得するようのボタンを設置します.

 

そして,MainActivityです.

Android4.2以上からは,HTTP通信を行う際にメインスレッド上(UIスレッド)で処理を行おうとすると例外を吐くようになりました.

ですので,それらの処理を全てAsyncTaskでバックグラウンドに回してしまいます.

 

/**
 * PINコードでTwitterの認証を行うActivity
 * @author ABS104a
 *
 */
public class OAuthActivity extends Activity {

    //アクセストークン
	private static final String TOKEN = "ここにConsumerKeyを入力";
	//トークンシークレット
	private static final String TOKEN_SECRET = "ここにConsumerSecretを入力";
	//Twitter
	private Twitter mTwitter = null;

	//リクエストトークン
	private RequestToken mRequestToken = null;

	private final Activity mActivity = this;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_oauth);

		//ブラウザを開くIntentを飛ばすボタンにリスナをセットする.
		*1
			.setOnClickListener(new OnClickListener(){

				@Override
				public void onClick(View v) {
					new OnOShowURLButtonClickTask().execute();
				}

			});

		//pin入力後トークンを取得するボタンにリスナをセットする.
		*2
			.setOnClickListener(new OnClickListener(){

				@Override
				public void onClick(View v) {
					new OnOAuthButtonClickTask().execute();
				}

			});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.oauth, menu);
		return true;
	}

	/**
	 * ボタンをタップすると,OAuthの認証URLを取得してブラウザを起動する.
	 * リスナ
	 * @author ABS104a
	 *
	 */
	public class OnOShowURLButtonClickTask extends AsyncTask<Void,Void,Void>{

		@Override
		protected Void doInBackground(Void... params) {
			//Twitterインスタンスを取得
			mTwitter = TwitterFactory.getSingleton();
			//ConsumerKeyをセットする.
			mTwitter.setOAuthConsumer(TOKEN, TOKEN_SECRET);

			try {
				//リクエストトークンを取得
				mRequestToken = mTwitter.getOAuthRequestToken();
				//認証URLを取得
				final String url = mRequestToken.getAuthorizationURL();

				//ブラウザを起動するためのintentを作成.
				final Intent intent = new Intent(Intent.ACTION_VIEW,
	                     Uri.parse(url));
				//intentを起動
				startActivity(intent);
			} catch (TwitterException e) {
				e.printStackTrace();
			}	
			return null;
		}	
	}

	/**
	 * OAuthボタンをタップした時に呼ばれるリスナ
	 * EditTextからPINを読み取りトークンを取得する.
	 * @author ABS104a
	 *
	 */
	public class OnOAuthButtonClickTask extends AsyncTask<Void,Void,AccessToken>{

		@Override
		protected AccessToken doInBackground(Void... params) {
			EditText mEditText = (EditText)mActivity.findViewById(R.id.editText);
			try {
				//アクセストークンを取得
				return mTwitter.getOAuthAccessToken(mRequestToken,mEditText.getText().toString());
			} catch (TwitterException e) {
				e.printStackTrace();
			}
			return null;
		}

		@Override
		protected void onPostExecute(AccessToken result) {
			super.onPostExecute(result);
			if(result == null) return;
			//トークンの書き出し(取得に成功した場合)
			Toast.makeText(mActivity, "Success!", Toast.LENGTH_SHORT).show();
			Toast.makeText(mActivity, result.getToken(), Toast.LENGTH_SHORT).show();
			Toast.makeText(mActivity, result.getTokenSecret(), Toast.LENGTH_SHORT).show();
			//Twitterクラスにアクセストークンをセット(これでTwitterクラスが使えるようになる)
			mTwitter.setOAuthAccessToken(result);

			//Tweetの送信(通常は通信を伴うため別スレッド上で動かす
			//Android4.2以降ではメインスレッドでHTTP投げようとすると例外吐くようです.
			//
			//mTwitter.updateStatus("hogehoge");

		}	

	}

}

このようなプログラムになりました.各機能の説明は他HPで豊富に乗ってるため簡略的に,

例外処理など一部省いている事をご了承ください.

このプログラムで,最後のToast部分でトークンを取得出来ていることが確認できます.

使い方としては,このActivityを認証専用として使って,intentを使って最後のAccessTokenとAccessSecretを元のActivityに返す事で他の作業ができるのではないかと思います.

 

とりあえず今回はPIN方式でやってます.Twitter使ってる方なら一度は目にしたことあると思いますが,認証ボタンを押すと7桁ぐらいの数字を入力してくださいというやつですね.

 

とりあえず,コード全体は

https://github.com/ABS104a/TwitterOAuthTest

に置いておきます.

 

また,質問orつっこみはTwitterの方まで(@ABS104a)お願いします.

 

それでは!

 

 

 

*1:Button)mActivity.findViewById(R.id.button_showURL

*2:Button)mActivity.findViewById(R.id.button