2017-03-04 9 views
0

権限を追加せずに自分のアプリのスクリーンショットを共有することはできますか?WRITE_EXTERNAL_STORAGE権限のないアプリのスクリーンショットを共有しますか?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

そして、これは私の他の人がコピー上の作品は

public void sendFile(File paramFile) { 

     String fileExtension = ".apk"; 
     File temporaryFile; 
     try { 
      temporaryFile = File.createTempFile(paramFile.getName(), fileExtension, getApplicationContext().getExternalCacheDir()); 
      copy(paramFile, temporaryFile); 
     } catch (Exception e) { 
      temporaryFile = paramFile; 
     } 
     Intent localIntent = new Intent(); 
     localIntent.setAction("android.intent.action.SEND"); 
     localIntent.putExtra("android.intent.extra.STREAM", Uri.fromFile(temporaryFile)); 
     localIntent.setType("application/*"); 
     localIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
     startActivity(Intent.createChooser(localIntent, "")); 
    } 
+0

は間違いありません。どのようにファイルを読んでいなくても共有できますか? – Noorul

+0

いくつかのことをキャッシュに書き込んでから共有しますか? –

+0

試してみてください。絶対にありません。 – Noorul

答えて

0

他にそれを利用できるようにするuse FileProvider、その後、内部記憶装置(例えば、getCacheDir())に自分の画像を保存をキャッシュして共有することで、コードをアプリでありますアプリ。詳細については、the documentationを参照してください。

+0

サンプルコードを書くことができますか? –

+0

@seyxsultan:私の答えに書かれている両方のドキュメントのリンクには、サンプルコードが含まれています。 – CommonsWare

0

あなたは、アプリケーションが、それが所有しているキャッシュ ファイルを置くことができ、主 外部ストレージデバイス上の特定のディレクトリをyouraplicationへの絶対パスgetExternalCacheDir()

を使用しています。これらのファイルはアプリケーションの内部にあり、メディアとしてユーザーに通常表示される ではありません。

これらのファイルにはセキュリティは適用されません。 返されたパスの読み取りまたは書き込みのアクセス許可を追加する必要はありません。 youraplicationアプリには常にアクセスできます。これは、あなたのパッケージ名のために生成されたパスにのみ適用されます。

android.Manifest.permission.WRITE_EXTERNAL_STORAGE 
android.Manifest.permission.READ_EXTERNAL_STORAGE 
関連する問題