mardi 14 juin 2016

Android enable and disable functionality programatically

How to enable and disable otg programatically ? I have tried this but my app crashes

   public class MainActivity extends Activity 
    {

    Button button;  
    int level;
    String status="";

    UsbDevice device;
    private UsbManager mUsbManager;
    private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() 
    {

    @Override
    public void onReceive(Context c, Intent i) 
    {
        level = i.getIntExtra("level", 0);  
    }

   };

   BroadcastReceiver mUsbDetachReceiver = new BroadcastReceiver() 
  {
    public void onReceive(Context context, Intent intent) 
    {
       status = intent.getStringExtra("status");
    }
  };
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        registerReceiver(mBatInfoReceiver, new IntentFilter(
         Intent.ACTION_BATTERY_CHANGED));



        button = (Button)findViewById(R.id.check);





    }


    public void getStatus(View v) 
    {


         if(level>25 )
         {
                /*registerReceiver(mUsbDetachReceiver,new IntentFilter(
                        Intent.ACTION_UMS_DISCONNECTED));*/
                 ComponentName componentName = new            ComponentName(MainActivity.this,"usb.host");
                 Toast.makeText(MainActivity.this, "Battery Status "+level+"%", Toast.LENGTH_LONG).show();


                 PackageManager pm = MainActivity.this.getPackageManager(); 
                    pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.PERMISSION_GRANTED);;
         }


    }


}

Stack trace 06-14 16:59:14.966: E/AndroidRuntime(10154): FATAL EXCEPTION: main 06-14 16:59:14.966: E/AndroidRuntime(10154): Process: com.example.batteryindicator, PID: 10154 06-14 16:59:14.966: E/AndroidRuntime(10154): java.lang.IllegalStateException: Could not execute method of the activity 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.view.View$1.onClick(View.java:4290) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.view.View.performClick(View.java:5246) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.widget.TextView.performClick(TextView.java:10571) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.view.View$PerformClick.run(View.java:21200) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.os.Handler.handleCallback(Handler.java:739) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.os.Handler.dispatchMessage(Handler.java:95) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.os.Looper.loop(Looper.java:145) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.app.ActivityThread.main(ActivityThread.java:6946) 06-14 16:59:14.966: E/AndroidRuntime(10154): at java.lang.reflect.Method.invoke(Native Method) 06-14 16:59:14.966: E/AndroidRuntime(10154): at java.lang.reflect.Method.invoke(Method.java:372) 06-14 16:59:14.966: E/AndroidRuntime(10154): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 06-14 16:59:14.966: E/AndroidRuntime(10154): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 06-14 16:59:14.966: E/AndroidRuntime(10154): Caused by: java.lang.reflect.InvocationTargetException 06-14 16:59:14.966: E/AndroidRuntime(10154): at java.lang.reflect.Method.invoke(Native Method) 06-14 16:59:14.966: E/AndroidRuntime(10154): at java.lang.reflect.Method.invoke(Method.java:372) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.view.View$1.onClick(View.java:4285) 06-14 16:59:14.966: E/AndroidRuntime(10154): ... 11 more 06-14 16:59:14.966: E/AndroidRuntime(10154): Caused by: java.lang.IllegalArgumentException: Component class usb.host does not exist in com.example.batteryindicator 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.os.Parcel.readException(Parcel.java:1550) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.os.Parcel.readException(Parcel.java:1499) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.content.pm.IPackageManager$Stub$Proxy.setComponentEnabledSetting(IPackageManager.java:4180) 06-14 16:59:14.966: E/AndroidRuntime(10154): at android.app.ApplicationPackageManager.setComponentEnabledSetting(ApplicationPackageManager.java:2044) 06-14 16:59:14.966: E/AndroidRuntime(10154): at com.example.batteryindicator.MainActivity.getStatus(MainActivity.java:75)

Aucun commentaire:

Enregistrer un commentaire