Advertisement
Guest User

RicevereNFC_S

a guest
Jan 16th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.25 KB | None | 0 0
  1. import android.Manifest;
  2. import android.content.Intent;
  3. import android.content.pm.PackageManager;
  4. import android.net.Uri;
  5. import android.os.Build;
  6. import android.os.Bundle;
  7. import android.support.v4.app.ActivityCompat;
  8. import android.support.v7.app.AppCompatActivity;
  9.  
  10. import java.io.File;
  11. import java.io.FileInputStream;
  12. import java.io.FileOutputStream;
  13. import java.io.IOException;
  14.  
  15. public class SchedaNFC extends AppCompatActivity {
  16.  
  17.     public static final String TAG_LOG = Schede.class.getName();
  18.     public static final int PERMISSION_CODE = 100;
  19.     public static final String CARD_DIR_NAME = "card";
  20.  
  21.     @Override
  22.     protected void onCreate(Bundle savedInstanceState) {
  23.         super.onCreate(savedInstanceState);
  24.         setContentView(R.layout.schede_layout);
  25.  
  26.         if (Intent.ACTION_VIEW.equals(getIntent().getAction())) {
  27.             if (isStoragePermissionGranted())
  28.                 addCard();
  29.         }
  30.     }
  31.  
  32.     @Override
  33.     protected void onNewIntent(Intent intent) {
  34.         super.onNewIntent(intent);
  35.         setIntent(intent);
  36.  
  37.         if (Intent.ACTION_VIEW.equals(getIntent().getAction())) {
  38.             if (isStoragePermissionGranted())
  39.                 addCard();
  40.         }
  41.     }
  42.  
  43.     @Override
  44.     public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
  45.         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  46.         if (requestCode == PERMISSION_CODE) {
  47.             if (grantResults[0] == PackageManager.PERMISSION_GRANTED
  48.                     && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
  49.                 addCard();
  50.             }
  51.         }
  52.     }
  53.  
  54.     private boolean isStoragePermissionGranted() {
  55.         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
  56.             if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
  57.                     && checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
  58.                 return true;
  59.             } else {
  60.                 ActivityCompat.requestPermissions(this, new String[]{
  61.                         Manifest.permission.WRITE_EXTERNAL_STORAGE,
  62.                         Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_CODE);
  63.                 return false;
  64.             }
  65.         } else { //permission is automatically granted on sdk<23 upon installation
  66.             return true;
  67.         }
  68.     }
  69.  
  70.     private void addCard() {
  71.         Uri beamUri = getIntent().getData();
  72.         File beamFile = new File(beamUri.getPath());
  73.  
  74.         File cardDir = new File(getExternalFilesDir(null) + File.separator + CARD_DIR_NAME);
  75.         if (!cardDir.exists()) cardDir.mkdirs();
  76.         String cardName = beamFile.getName();
  77.  
  78.         File card = new File(cardDir, cardName);
  79.  
  80.         try {
  81.             byte buff[] = new byte[64];
  82.             int len;
  83.             FileInputStream in = new FileInputStream(beamFile);
  84.             FileOutputStream out = new FileOutputStream(card);
  85.  
  86.             while ((len = in.read(buff)) > 0) {
  87.                 out.write(buff, 0, len);
  88.             }
  89.         } catch (IOException e) {
  90.             e.printStackTrace();
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement