gpt4 book ai didi

java - 在 AndroidManifest 中授予 Activity 权限

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:19 25 4
gpt4 key购买 nike

我有一个在设备上运行激光扫描仪的 Cordova 插件,其 Main.java 如下所示:

package com.example.plugin;

import org.apache.cordova.*;
import org.json.JSONArray;
import org.json.JSONException;


import java.security.PublicKey;

import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import android.util.Log;

public class Hello extends CordovaPlugin {
public static final int REQUEST_CODE = 0x0ba7c0de;

@Override
public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {

if (action.equals("scan")) {
scan();
return true;
} else {
return false;
}
}

public void scan() {
Intent intentService = new Intent("com.hyipc.core.service.barcode.BarcodeService2D");
intentService.putExtra("KEY_ACTION", "UP");

this.cordova.startActivityForResult((CordovaPlugin) this, intentService, REQUEST_CODE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
Log.i("scan", "everything works fine");
}
}

当我运行插件时,我在错误日志中得到了这个:

07-11 12:03:33.541: E/AndroidRuntime(5258): FATAL EXCEPTION: main
07-11 12:03:33.541: E/AndroidRuntime(5258): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ionicframework.curierapp266167/com.hyipc.core.service.barcode.BarcodeService2D}: java.lang.ClassNotFoundException: Didn't find class "com.hyipc.core.service.barcode.BarcodeService2D" on path: DexPathList[[zip file "/data/app/com.ionicframework.curierapp266167-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ionicframework.curierapp266167-2, /vendor/lib, /system/lib]]
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.access$600(ActivityThread.java:162)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.os.Handler.dispatchMessage(Handler.java:107)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.os.Looper.loop(Looper.java:194)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.main(ActivityThread.java:5392)
07-11 12:03:33.541: E/AndroidRuntime(5258): at java.lang.reflect.Method.invokeNative(Native Method)
07-11 12:03:33.541: E/AndroidRuntime(5258): at java.lang.reflect.Method.invoke(Method.java:525)
07-11 12:03:33.541: E/AndroidRuntime(5258): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
07-11 12:03:33.541: E/AndroidRuntime(5258): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-11 12:03:33.541: E/AndroidRuntime(5258): at dalvik.system.NativeStart.main(Native Method)
07-11 12:03:33.541: E/AndroidRuntime(5258): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.hyipc.core.service.barcode.BarcodeService2D" on path: DexPathList[[zip file "/data/app/com.ionicframework.curierapp266167-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ionicframework.curierapp266167-2, /vendor/lib, /system/lib]]

我已将它添加到我的 AndroidManifest.xml 文件中,但我很确定它有问题。

<activity android:label="@string/share_name" android:name="com.hyipc.core.service.barcode.BarcodeService2D">
<intent-filter>
<action android:name="com.hyipc.core.service.barcode.BarcodeService2D" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

编辑

如果我将我的 list 文件编辑成这个,我会得到 No Activity found to handle Intent 错误。

<activity android:label="@string/share_name" android:name="com.hyipc.core.service.barcode.BarcodeService2D">
<intent-filter>
<action android:name="android.intent.action.LAUNCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

此外,如果我尝试这样开始 Activity :

cordova.getActivity().startService(intentService);

扫描仪启动没有错误,但我不知道如何得到它的结果。

最佳答案

从评论列表中的讨论我们知道BarcodeService2D,是一个Service,使用startService可以成功启动该组件。现在问题变成了“如何将数据从我的服务传递到 Activity 实例”? StackOverflow 中有很多答案,请参阅 thisthis .只需谷歌搜索即可。

对于“那么服务不同于 Activity ?”这个问题,答案是肯定的。 Activity 通常代表应用中的一个屏幕。它包含各种 ViewDrawable 和许多其他内容,您可以直接与它交互。 Service 通常用于在没有任何 UI 的情况下在后台执行长时间运行的任务。有关详细信息,请参阅 the developer site

关于java - 在 AndroidManifest 中授予 Activity 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38303058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com