cuốn sách gpt4 ai đã làm

Sự cố về quyền khi bắt đầu dịch vụ từ Android

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-01 21:38:23 25 4
mua khóa gpt4 Nike

Tôi đã viết một dịch vụ như một phần của ứng dụng. Tôi cố gắng gọi dịch vụ này từ ứng dụng thứ hai bằng mã sau:

    Ý định ý định = Ý định mới () ;
ý định.setClassName("com.test" ,"com.test.DownloadService") ;
// Tạo Messenger mới để liên lạc lại
Messenger Messenger = Messenger mới (người xử lý);
ý định.putExtra("MESSENGER", tin nhắn);
ý định.setData(Uri.parse("http://www.vogella.com/index.html"));
Intent.putExtra("urlpath", "http://www.vogella.com/index.html");
this.startService(ý định);

Nó đưa ra ngoại lệ sau

07-10 09:27:28.819: LỖI/AndroidRuntime(4226): NGOẠI LỆ TUYỆT VỜI: chính
java.lang.RuntimeException: Không thể bắt đầu hoạt động ComponentInfo{com.inject/com.inject.MyActivity}: java.lang.SecurityException: Không được phép bắt đầu dịch vụ Ý định { dat=http://www.vogella.com/index. html cmp=com.test/.DownloadService (có tính năng bổ sung) } mà không được phép thì không được xuất từ ​​uid 10109
tại android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1971)
tại android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1996)
tại android.app.ActivityThread.access$700(ActivityThread.java:126)
tại android.app.ActivityThread$H.handleMessage(ActivityThread.java:1156)
tại android.os.Handler.dispatchMessage(Handler.java:99)
tại android.os.Looper.loop(Looper.java:137)
tại android.app.ActivityThread.main(ActivityThread.java:4458)
tại java.lang.reflect.Method.invokeNative(Phương thức gốc)
tại java.lang.reflect.Method.invoke(Method.java:511)
tại com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
tại com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
tại dalvik.system.NativeStart.main(Phương pháp gốc)
Nguyên nhân do: java.lang.SecurityException: Không được phép khởi động dịch vụ Ý định { dat=http://www.vogella.com/index.html cmp=com.test/.DownloadService (có tính năng bổ sung) } không được phép không được xuất từ ​​uid 10109
tại android.app.ContextImpl.startService(ContextImpl.java:1122)
tại android.content.ContextWrapper.startService(ContextWrapper.java:359)
tại com.inject.MyActivity.onCreate(MyActivity.java:28)
tại android.app.Activity.performCreate(Activity.java:4465)
tại android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
tại android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1935)
... 11 nữa

Tại sao vấn đề về quyền này lại xảy ra?

Khi tôi gọi dịch vụ từ cùng một ứng dụng, đoạn mã sau sẽ chạy hoàn hảo:

    Ý định ý định = Ý định mới (điều này, DownloadService.class);
// Tạo Messenger mới để liên lạc lại
Messenger Messenger = Messenger mới (người xử lý);
ý định.putExtra("MESSENGER", tin nhắn);
ý định.setData(Uri.parse("http://www.vogella.com/index.html"));
Intent.putExtra("urlpath", "http://www.vogella.com/index.html");
startService(ý định);

Mặc dù tôi đã cung cấp tất cả các quyền cần thiết trong danh sách của App2 nhưng ai đó có thể cho tôi biết lý do sự cố về quyền này xảy ra khi tôi gọi dịch vụ từ các ứng dụng khác không.

biên tập

Danh sách ứng dụng2



gói="com.inject"
android:versionCode="1"
android:versionName="1.0">



<ứng dụng="" android:label="@string/app_name" android:icon="@drawable/ic_launcher">

android:label="@string/app_name">







Danh sách App1 chứa các dịch vụ



gói="com.test"
android:versionCode="1"
android:versionName="1.0">



<ứng>
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >

android:name=".MainActivity"
android:label="@string/app_name" >











câu trả lời hay nhất

Dịch vụ này không khả dụng cho các ứng dụng khác vì bạn chưa cung cấp dịch vụ này một cách rõ ràng. Dịch vụ của bạn cần được xác định như thế này:


android:exported="true">

Bạn không cần bất kỳ quyền bổ sung nào (trừ khi bạn muốn sử dụng chúng)

Về vấn đề quyền của android khi bắt đầu dịch vụ từ android, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/11410718/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress