2011-01-22 11 views
13

Tất cả ứng dụng của tôi có cùng sharedUserId. Tôi muốn bắt đầu một lớp học của một ứng dụng khác bằng cách sử dụng lớp ứng dụng hiện tại của tôi. Tôi muốn sử dụng tính năng bổ sung ý định nhưng tôi không muốn sử dụng các URL mục đích. Tôi cũng không muốn thay đổi AndroidManifest của ứng dụng hoạt động mục tiêu của mình.Mục đích Android: Bắt đầu hoạt động bằng cách sử dụng tên lớp từ một ứng dụng khác có cùng sharedUserId

+2

'Tất cả ứng dụng của tôi đều có cùng sharedUserId' Tôi rất muốn không làm điều đó. – Falmarri

+0

Nó là cần thiết từ một quan điểm người dùng mà đăng nhập vào một ứng dụng đăng nhập vào những người khác là tốt. Tôi có thể khóa cookie đăng nhập vào sharedUserId của mình hoặc tôi có thể công khai nó cho tất cả các ứng dụng. Ngoài ra, không thể xuống đường thêm sharedUserId vào ứng dụng không có ứng dụng mà không yêu cầu gỡ cài đặt và mất dữ liệu (trừ khi chúng khắc phục sự cố này trong các bản phát hành trong tương lai). @ Falmarri, Tất cả những điều đó sang một bên, tôi vẫn muốn biết tại sao nó được ưa thích không sử dụng sharedUserId. –

Trả lời

30

Nó khá dễ dàng vì bạn có tập sharedUserId.

Intent res = new Intent(); 
String mPackage = "com.your.package"; 
String mClass = ".actYouAreLaunching"; 
res.setComponent(new ComponentName(mPackage,mPackage+mClass)); 
startActivity(res); 

Và đó là tất cả. Bạn có thể thêm các tính năng bổ sung ý định như bình thường.

+0

bạn có thể bỏ qua 'ComponentName (...)' mới bằng cách sử dụng 'Intent.setClassName (String pack, String className)' –

Các vấn đề liên quan