Android システムの設定アプリ (つまり、Android の元のソース コード) のカスタマイズに取り組んでいます。その下で、Gallery から Android の設定アプリに画像を取得する必要があります。私が立ち往生した状況は、アプリから同じことを試みているときに正常に動作しますが、Android 設定のアプリになると、sdcard で画像のパスを見つけることができず、NullPointerException が見つかりました。
質問する
247 次
1 に答える
0
システム UID として実行されているプログラムから外部ストレージにアクセスすることはできません。
adb shell を使用して、マウント ポイントの場所と /mnt のファイル モードを確認できます。
shell@maguro:/ $ ls -l /sdcard
lrwxrwxrwx root root 2013-10-05 06:09 sdcard -> /storage/emulated/legacy
shell@maguro:/ $ ls -l /storage/emulated/legacy
lrwxrwxrwx root root 2013-10-05 06:09 legacy -> /mnt/shell/emulated/0
shell@maguro:/mnt $ ls -l
drwxr-xr-x root system 2013-10-05 06:09 asec
drwxr-xr-x root system 2013-10-05 06:09 obb
lrwxrwxrwx root root 2013-10-05 06:09 sdcard -> /storage/emulated/legacy
drwx------ root root 2013-10-05 06:09 secure
drwx------ shell shell 2013-10-05 06:09 shell
また、システム ユーザーは外部ストレージにアクセスできないことがわかります。
現在は ICS 以来の FUSE ですが、ユーザーが外部 SDCARD パーティションをアンマウントできる場合、これは古い Android システムからの遺産です。その時点で、いずれかのプロセスが外部ストレージにアクセスしている場合、vold はそのプロセスを強制終了します。
システムプロセスが外部ストレージにアクセスすることを禁止するのは、この考慮事項のためです-私の推測です。
于 2013-10-07T10:35:50.657 に答える