0

USBケーブルを接続した後にAndroidアプリケーションを自動的に起動することから学ぶ、USB接続時に起動できるアプリを作成しようとしています。

私のコードは

    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();
      }
    });

私のマニフェストは

<?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 ケーブルを接続したときに問題が発生したことが示されます。後で再試行してください。

コードを正常に動作させるには、どのようにコードを変更すればよいですか。

4

2 に答える 2

2

あなたはおそらく試してみるべきです

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

または、パッケージ com.example.formatsdcard に OnPowerReceiver をパブリック クラスとして配置してみてください。

于 2013-11-05T13:59:25.650 に答える
0

独自の を作成classしますonPowerReceiver。MainActivity に入れないでください。

于 2013-11-05T13:59:13.413 に答える