Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用关闭时按音量键启动我的应用_Android - Fatal编程技术网

Android 应用关闭时按音量键启动我的应用

Android 应用关闭时按音量键启动我的应用,android,Android,当我退出我的应用程序时,我想点击音量按钮再次启动它,而不点击应用程序的图标。因为我会隐藏图标,只通过音量按钮启动应用程序,这是代码和感谢 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.la

当我退出我的应用程序时,我想点击音量按钮再次启动它,而不点击应用程序的图标。因为我会隐藏图标,只通过音量按钮启动应用程序,这是代码和感谢

public class MainActivity extends Activity {


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


    //////// this to hide the app icon  ///////////////

    PackageManager p = getPackageManager();
    ComponentName componentName = new ComponentName(this, com.test.MainActivity.class);
    p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

  }


   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == android.view.KeyEvent.KEYCODE_VOLUME_DOWN)) {

      //Do something  
      Toast.makeText(MainActivity.this, "Down working", Toast.LENGTH_SHORT).show();

    }
    return true;
}

}

您应该使用广播接收器按音量按钮

在清单文件中注册接收者

<receiver android:name="com.package.CallBroadcastReceiver" >
    <intent-filter>
        <action android:name="android.media.VOLUME_CHANGED_ACTION" />
    </intent-filter>
</receiver>

请分享你的错误日志谢谢你,它工作得很好。另一个问题:我可以用is打开其他应用程序吗(我试图使用它,但应用程序崩溃了)?
public class CallBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {     
        Intent i = new Intent();
        i.setClassName("com.package", "com.package.MainActivity");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);      
    }
}