当USB连接时启动我的Android应用程序

时间:2013-11-05 13:55:00

标签: android usb

我尝试编写可以在USB连接时启动的应用程序 我从Starting my android application automatically after connecting the USB cable.

学习

我的代码是

    package com.example.formatsdcard;
    import java.io.File;


    import android.os.Bundle;
    import android.os.Environment;
    import android.app.Activity;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Button;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;

    public class MainActivity extends Activity {

public class OnPowerReceiver extends BroadcastReceiver { 

    @Override
        public void onReceive(Context context, Intent intent) {

            Intent i = new Intent(context, MainActivity.class);
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);   
        }   
    }   

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button mButton01 = (Button)findViewById(R.id.button1); 
    mButton01.setOnClickListener(new Button.OnClickListener() 
    { 
      public void onClick(View v) 
      {
          wipeMemoryCard();
      }
    });

MY Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.formatsdcard"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission   android:name="android.intent.action.ACTION_POWER_CONNECTED"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.example.formatsdcard.MainActivity"
        android:label="@string/app_name" >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>
    <receiver android:name=".OnPowerReceiver">
           <intent-filter>
              <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
           </intent-filter>
                </receiver>
</application>

我的应用程序可以在我点击它之后运行,但它会显示有一些问题,稍后再尝试连接我的USB电缆。

我应该如何更改代码以使其正常工作。

2 个答案:

答案 0 :(得分:2)

您应该尝试

<receiver android:name="MainActivity$OnPowerReceiver">
    <intent-filter>
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
    </intent-filter>
</receiver>

或者尝试将OnPowerReceiver作为com.example.formatsdcard包中的公共类

答案 1 :(得分:0)

class创建自己的onPowerReceiver。不要把它放在你的MainActivity中。