我正在开发一个必须同时在前台和后台捕获关键事件的应用程序。我使用了以下代码。但是我无法在后台捕获 key 。
package com.sri.KeyCap;
import android.app.Activity;
import android.content.Intent;
import android.os.IBinder;
import android.view.KeyEvent;
import android.widget.Toast;
import java.io.OutputStreamWriter;
public class KeyCap extends Activity {
OutputStreamWriter out;
int flag = 0;
/** Called when the activity is first created. */
public IBinder onBind(Intent intent)
{
return null;
//super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
try {
if (flag == 0) {
out = new OutputStreamWriter(
openFileOutput("myfilename.txt", 0));
flag = 1;
}
out.write("" + keyCode);
out.flush();
Toast.makeText(getApplicationContext(), "" + keyCode,
Toast.LENGTH_LONG).show();
} catch (java.io.IOException e) {
// do something if an IOException occurs.
}
return true;
}
}
我用的是广播接收器..
package com.sri.KeyCap;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class _service extends BroadcastReceiver {
public void onReceive(Context aContext, Intent aIntent) {
aIntent.setClass(aContext,KeyCap.class);
aContext.startActivity(aIntent);
}
}
谁能纠正我..
最佳答案
您无法在应用程序之外捕获关键事件。
关于android - 关键捕获问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332573/