1

Android コードで sharedpreferences ファイルを作成しています。次に、コードでそのファイルを電子メールで送信します。そのためには、sharedpreferences ファイルのパスにアクセスする必要があります。私が使用しているコードは以下のとおりです。しかし、うまくいかないようです。メールを開くことはできますが、ファイルを取得できなかったと思われるため、添付ファイルはありません。誰かがここで解決策を提案できますか。

File f = getDatabasePath("userPrefsFile.xml");
String filelocation=f.getAbsolutePath();
Intent email = new Intent(Intent.ACTION_SEND);
email.setType("application/xml");
String[] to = {"test@test.com"};
email.putExtra(Intent.EXTRA_EMAIL, to);
email.putExtra(Intent.EXTRA_STREAM,filelocation);
email.putExtra(Intent.EXTRA_SUBJECT,"test file send");
startActivity(Intent.createChooser(email, "Send email"));
4

1 に答える 1

2

したがって、SharedPreferencesファイルはディレクトリにあります

/data/data/your.package/shared_prefs

したがって、上記のパスを使用する必要があります。

擬似コード:

File root = new File("/data/data/your.package/shared_prefs");
if (root.isDirectory()) {
   for (File child: root.listFiles()) {
      Toast.makeText(this, child.getPath(), Toast.LENGTH_SHORT).show();
   }
}

使用できない理由は、データベース フォルダー1getDatabasePath()を返すことです。

/data/data/your.package/databases/


1同じ問題はgetFileStreamPath()、返すメソッドにも関連しています

/data/data/your.package/files
于 2013-04-02T22:18:37.157 に答える