Guest User

Untitled

a guest
May 22nd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.51 KB | None | 0 0
  1. package com.app.rollertest;
  2.  
  3. import android.app.Activity;
  4. import android.app.PendingIntent;
  5. import android.content.BroadcastReceiver;
  6. import android.content.Context;
  7. import android.content.Intent;
  8. import android.content.IntentFilter;
  9.  
  10. import android.os.Bundle;
  11. import android.os.ParcelFileDescriptor;
  12.  
  13. import android.view.View;
  14. import android.view.View.OnClickListener;
  15. import android.widget.Button;
  16. import android.widget.TextView;
  17.  
  18. import com.android.future.usb.UsbAccessory;
  19. import com.android.future.usb.UsbManager;
  20.  
  21.  
  22.  
  23. import java.io.FileDescriptor;
  24.  
  25. import java.io.FileOutputStream;
  26. import java.io.IOException;
  27.  
  28. public class RollerTestActivity extends Activity {
  29.    
  30.     private UsbManager mUsbManager;
  31.     private UsbAccessory mAccessory;
  32.    
  33.     private FileOutputStream mOutputStream;
  34.     private ParcelFileDescriptor mFileDescriptor;
  35.    
  36.     private PendingIntent mPermissionIntent;
  37.     private boolean mPermissionRequestPending;
  38.    
  39.    
  40.     TextView C7;
  41.     TextView C6;
  42.     TextView C5;
  43.     TextView C4;
  44.     TextView C3;
  45.     TextView C2;  
  46.     TextView C1;
  47.    
  48.     Button B;
  49.     OnClickListener BL = new OnClickListener() {       
  50.            
  51.             public void onClick(View v) {
  52.  
  53.                 System.out.format( String.valueOf("click%n") );
  54.                
  55.                 C7.setText("click.");
  56.                 sendCommand((byte)2, (byte)0, (byte)255);
  57.             }
  58.     };
  59.    
  60.     private static final String ACTION_USB_PERMISSION = "com.app.rollertest.action.USB_PERMISSION";
  61.    
  62.     private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
  63.         @Override
  64.         public void onReceive(Context context, Intent intent) {
  65.             String action = intent.getAction();
  66.             if (ACTION_USB_PERMISSION.equals(action)) {
  67.                 synchronized (this) {
  68.                     UsbAccessory accessory = UsbManager.getAccessory(intent);
  69.                     if (intent.getBooleanExtra(
  70.                             UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
  71.                         openAccessory(accessory);
  72.                     } else {
  73.                         C2.setText("openAccessory positive");  
  74.                     }
  75.                     mPermissionRequestPending = false;
  76.                 }
  77.             } else if (UsbManager.ACTION_USB_ACCESSORY_DETACHED.equals(action)) {
  78.                 UsbAccessory accessory = UsbManager.getAccessory(intent);
  79.                 if (accessory != null && accessory.equals(mAccessory)) {
  80.                     closeAccessory();
  81.                 }
  82.             }
  83.         }
  84.     };
  85.    
  86.     @Override
  87.     public void onCreate(Bundle savedInstanceState) {
  88.         super.onCreate(savedInstanceState);
  89.         setContentView(R.layout.main);
  90.        
  91.        
  92.         C1 = (TextView)findViewById(R.id.C1);
  93.         C2 = (TextView)findViewById(R.id.C2);
  94.         C3 = (TextView)findViewById(R.id.C3);
  95.         C4 = (TextView)findViewById(R.id.C4);
  96.         C5 = (TextView)findViewById(R.id.C5);
  97.         C6 = (TextView)findViewById(R.id.C6);
  98.         C7 = (TextView)findViewById(R.id.C7);
  99.        
  100.         B = (Button)findViewById(R.id.button1);
  101.         B.setOnClickListener(BL);
  102.        
  103.        
  104.         mUsbManager = UsbManager.getInstance(this);
  105.         mPermissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(
  106.                 ACTION_USB_PERMISSION), 0);
  107.         IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
  108.         filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED);
  109.         registerReceiver(mUsbReceiver, filter);
  110.        
  111.         if (getLastNonConfigurationInstance() != null) {
  112.            
  113.             mAccessory = (UsbAccessory) getLastNonConfigurationInstance();
  114.             openAccessory(mAccessory);
  115.            
  116.         } else {
  117.            
  118.             C1.setText("getLastNonConfigurationInstance else");        
  119.         }
  120.  
  121.        
  122.     }
  123.    
  124.     private void openAccessory(UsbAccessory accessory) {
  125.         mFileDescriptor = mUsbManager.openAccessory(accessory);
  126.         if (mFileDescriptor != null) {
  127.            
  128.             C2.setText("openAccessory positive");  
  129.            
  130.             mAccessory = accessory;
  131.             FileDescriptor fd = mFileDescriptor.getFileDescriptor();
  132.            
  133.             mOutputStream = new FileOutputStream(fd);
  134.        
  135.         } else {
  136.             C2.setText("openAccessory else");      
  137.         }
  138.     }
  139.    
  140.    
  141.     private void closeAccessory() {
  142.        
  143.         try {
  144.             if (mFileDescriptor != null) {
  145.                 mFileDescriptor.close();
  146.             }
  147.         } catch (IOException e) {
  148.         } finally {
  149.             mFileDescriptor = null;
  150.             mAccessory = null;
  151.         }
  152.     }
  153.    
  154.    
  155.     public void sendCommand(byte command, byte target, int value) {
  156.         byte[] buffer = new byte[3];
  157.         if (value > 255)
  158.             value = 255;
  159.  
  160.         buffer[0] = command;
  161.         buffer[1] = target;
  162.         buffer[2] = (byte) value;
  163.         if (mOutputStream != null && buffer[1] != -1) {
  164.             try {
  165.                 mOutputStream.write(buffer);
  166.             } catch (IOException e) {
  167.                
  168.                 C3.setText("SC: exeption");
  169.                
  170.             }
  171.         } else {
  172.            
  173.             C3.setText("SC: else");
  174.         }
  175.     }
  176.    
  177.    
  178.    
  179.  
  180.    
  181.    
  182.    
  183.    
  184. }
Add Comment
Please, Sign In to add comment