0

我有下一个代码:

class Printer{
Activity activity;
public Printer (Activity activity) {
    this.activity = activity;
    initializeBluetooth();
}

public boolean initializeBluetooth() {
    BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (mBluetoothAdapter == null) {
        Context context = activity.getApplicationContext();
        Toast toast = Toast.makeText(context, activity.getString(R.string.notSupportedBluetooth), 3000);
        toast.show();
        return false;
    } else {
        if (!mBluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            activity.startActivityForResult(enableBtIntent, 0);
            return false;
        }
    }
    return true;
}

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    System.out.println(resultCode);
    if (resultCode == 0) {
        System.out.println("one");
    } else {
        System.out.println("two");
    }
}}

问题是onActivityResult,我知道它不能被调用,因为该类不是一个活动,所以我如何检查用户是否点击了蓝牙请求而不将我的类变成活动?activity.startActivityForResult(enableBtIntent, 0); 谢谢

4

1 回答 1

2

你为什么做这个?只需在类中包含所有蓝牙功能Activity......无需为此创建单独的类。

onActivityResult无论如何,只需将您的代码复制并粘贴到您的Activity文件中:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    System.out.println(resultCode);
    if (resultCode == 0) {
        System.out.println("one");
    } else {
        System.out.println("two");
    }
}

onActivityResult包含在您的Printer课程中是没有意义的,因为 callonActivityResult将被调用Activity

于 2012-06-22T16:58:07.560 回答