Xperia Z4でMSC接続する方法
懲りずに連日連投のZ4ネタ
- adb導入済みなこと。
- 自己責任で。
長文無理なら一番下までジャンプ - 先に言っておくがAndroid6.0では使えない(8/30追記)
izana1018.hateblo.jp
なにか判ればまた書きます。
MTPでしか繋がらない
Xperia Z4をパソコンにUSB接続するとMTPで認識される。
まぁMTP接続は前からできてたし、前機種SOL22では接続モードをMTP⇔MSCで切り替えれたから変えたらええやんっと・・・
ん?設定画面なくね?
接続方法を選択できる設定画面がどこにもない( ;∀;)
自作ツールでiTunesとXperiaの同期を取っているので、転送モードがMSCじゃないと同期取れなくて困るんですがーがーがー・・
Heliumを使う
今まで使ったこと無いけど、Heliumとかいうバックアップアプリを使うことでMSCモードに切り替えることが出来るそうな。
価格.com - 『MTPモードとMSCモードの切り替え』 ソニーモバイルコミュニケーションズ Xperia Z4 SO-03G docomo のクチコミ掲示板
できた!
確かに価格コムに書いてある通り、変更画面出てきた!ww
あれ?なんでHeliumは変更画面でてきたん??
もしかして・・画面はあるけど、「普通にはアクセス出来ない」だけだったり・・・
猪口才なやつめ
そんな奴は丸裸にしたるわ!
以下、自己責任で。
Androidソースコードを直接見てみる
ソースコードダウンロード
コマンドズラリ(手抜き
$ mkdir ~/bin $ PATH=~/bin:$PATH $ sudo apt-get install curl $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo $ repo init -u https://android.googlesource.com/platform/manifest $ repo init -u https://android.googlesource.com/platform/manifest -b android-5.0.2_r3 $ repo sync
フフッ・・32GB食われた
落とし方を間違えたかな?
昨日寝る前に始めて、朝になっても終わってない訳だ。
USB接続の設定画面を呼び出すインテント定義を探す
最初はSettings | Android Developersで探してたんだけど、ACTION_MEMORY_CARD_SETTINGS
とかではダメだった。
インテント定義自体はAndroidManifest.xmlに記述されているということで、find . -name "*Manifest*.xml"
したところ
見事に大漁でした。ありがとうございました。
キリなさそうだったので、途中で中断。
こうなったら勘でpackages/apps/Settings/AndroidManifest.xml
怪しそうじゃね?
ってことで中身を見てUSB
とかで検索するとそれっぽいandroid.settings.STORAGE_USB_SETTINGS
発見!
<activity android:name="Settings$UsbSettingsActivity" android:label="@string/storage_title_usb" android:taskAffinity="com.android.settings" android:parentActivityName="Settings$StorageSettingsActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <action android:name="android.settings.STORAGE_USB_SETTINGS" /> <action android:name="com.android.settings.STORAGE_USB_SETTINGS" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.deviceinfo.UsbSettings" /> <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" android:resource="@id/storage_settings" /> <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" android:value="true" /> </activity>
あー、これ、間違いなく黒ですわ!
adbでインテント起動
C:\>adb.exe shell am start -a android.settings.STORAGE_USB_SETTINGS Starting: Intent { act=android.settings.STORAGE_USB_SETTINGS } C:\>
はい、出ました~
後はSDカードのマウントにチェックすればリムーバブルディスクで繋げれるとな
MTPに戻したい場合
同様に設定画面を出して、MTPにチェックすればOK。
こういうところ、Androidって便利だな~と思う。
追記
自分用にはアプリ作ってたけど、Google Playで公開している方がいるようなので参考まで(確認はしてない)
どうやらZ5も同じ手順で切り替えできるらしい。