Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.Manifest;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.support.v4.app.ActivityCompat;
- import android.support.v7.app.AppCompatActivity;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- public class SchedaNFC extends AppCompatActivity {
- public static final String TAG_LOG = Schede.class.getName();
- public static final int PERMISSION_CODE = 100;
- public static final String CARD_DIR_NAME = "card";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.schede_layout);
- if (Intent.ACTION_VIEW.equals(getIntent().getAction())) {
- if (isStoragePermissionGranted())
- addCard();
- }
- }
- @Override
- protected void onNewIntent(Intent intent) {
- super.onNewIntent(intent);
- setIntent(intent);
- if (Intent.ACTION_VIEW.equals(getIntent().getAction())) {
- if (isStoragePermissionGranted())
- addCard();
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if (requestCode == PERMISSION_CODE) {
- if (grantResults[0] == PackageManager.PERMISSION_GRANTED
- && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
- addCard();
- }
- }
- }
- private boolean isStoragePermissionGranted() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
- && checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
- return true;
- } else {
- ActivityCompat.requestPermissions(this, new String[]{
- Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_CODE);
- return false;
- }
- } else { //permission is automatically granted on sdk<23 upon installation
- return true;
- }
- }
- private void addCard() {
- Uri beamUri = getIntent().getData();
- File beamFile = new File(beamUri.getPath());
- File cardDir = new File(getExternalFilesDir(null) + File.separator + CARD_DIR_NAME);
- if (!cardDir.exists()) cardDir.mkdirs();
- String cardName = beamFile.getName();
- File card = new File(cardDir, cardName);
- try {
- byte buff[] = new byte[64];
- int len;
- FileInputStream in = new FileInputStream(beamFile);
- FileOutputStream out = new FileOutputStream(card);
- while ((len = in.read(buff)) > 0) {
- out.write(buff, 0, len);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement