2011-12-12 22 views
6

Tôi đã tải xuống ứng dụng từ thị trường Android. Tôi chỉ cần nhập một số và bấm vào nhập, ứng dụng đó tạo ra một bảng với một số nội dung.Có thể nhận dữ liệu từ ứng dụng khác trong Android không?

Tôi muốn ứng dụng của mình sao chép nội dung của bảng. Ứng dụng của tôi đã gọi ứng dụng đó. Người dùng phải đặt dữ liệu trong văn bản chỉnh sửa theo cách thủ công và sau đó nhấn enter. Ứng dụng của tôi sẽ chạy trong nền cho đến lúc đó.

  1. Điều này có khả thi không?
  2. Làm cách nào?

Câu hỏi khác: Tôi có thể chụp ảnh màn hình của ứng dụng thứ 2 và sau đó sử dụng hình ảnh để giải mã văn bản để lấy dữ liệu trên màn hình đó không?

Trả lời

2

Here là tài liệu đầy đủ về lưu trữ dữ liệu và chia sẻ dữ liệu giữa các ứng dụng. Tôi nghi ngờ bạn có thể chia sẻ cơ sở dữ liệu, nhưng bạn có thể thử làm tương tự bằng cách sử dụng external storage

+0

Ứng dụng này không phải của tôi, vì vậy tôi thậm chí không biết nơi cơ sở dữ liệu nằm, nơi tất cả dữ liệu được lưu trữ. Trong trường hợp đó, tôi phải làm gì? – Pallavi

+0

Tôi cho rằng bạn không thể đạt được bất kỳ dữ liệu cá nhân nào của ứng dụng khác.Nếu ứng dụng của bên thứ ba muốn chia sẻ bất kỳ dữ liệu nào - nó sử dụng các phương pháp, được mô tả trong tài liệu – Jin35

0

Dường như bạn muốn chuyển một số dữ liệu đến ứng dụng đó và chạy nó, phải không? Có thể nếu và chỉ khi ứng dụng đó cung cấp một số "móc" để bạn làm điều đó.

Trong Android, bạn có thể, bất kể cho dù một ứng dụng cung cấp bất kỳ móc cho bạn hay không, hãy bắt đầu một ứng dụng bằng cách làm một cái gì đó như thế này:

Intent intent=new Intent(); 
intent.setPackage(TARGET_APP's package name); 
context.startActivity(intent); 

này nên bắt đầu ứng dụng, tuy nhiên, nếu nó doesn không cung cấp móc cho bạn, ứng dụng đó sẽ chạy như bình thường. Trong trường hợp đó, dữ liệu của bạn sẽ không có hiệu lực. Nếu nó cung cấp móc, bạn có thể put data qua intent.putExtra("KEy",value) và sau đó khởi động ứng dụng đó.

Mặt khác, nếu bạn muốn đọc một số dữ liệu từ một ứng dụng, có thể nếu và chỉ khi ứng dụng đó cho phép bạn làm như vậy. Dữ liệu do ứng dụng tạo được là riêng tư theo mặc định.

+0

Cảm ơn câu trả lời của bạn, tôi đã viết mã để khởi động ứng dụng và nó hoạt động tốt, nhưng tôi cần truy cập dữ liệu. Tôi không thể làm điều đó. – Pallavi

+0

nếu ứng dụng đó không thiết kế cơ chế cho một số ứng dụng thứ ba chuyển dữ liệu, bạn không thể làm như vậy. – Huang

+0

ok. cảm ơn. nhưng có công việc nào khác xung quanh cho việc này không? – Pallavi

1

Ứng dụng riêng cho hộp cát Android, vì vậy bạn chỉ có thể tương tác với các ứng dụng khác thông qua dịch vụ tiếp xúc của họ - mục đích và nhà cung cấp nội dung. Bắt nguồn từ gần như chắc chắn sẽ không giúp đỡ ở đây.

Có thể lấy dữ liệu từ ứng dụng của bên thứ ba mà bạn không biết gì về khả năng là không thể và chụp ảnh màn hình lộn xộn và không đáng tin cậy ngay cả khi có thể.

Tại sao không liên hệ với nhà phát triển và giải thích những gì bạn muốn làm, để xem liệu họ có cung cấp một cách hợp lý để bạn có được dữ liệu từ ứng dụng của họ không?

4

Có hai cách:

1) Ý định: Nếu bạn muốn chia sẻ một lượng nhỏ văn bản hoặc dữ liệu số giữa các ứng dụng, bạn nên gửi một Intent có chứa dữ liệu.

2) Nhà cung cấp nội dung: Để cung cấp tệp từ ứng dụng của bạn cho ứng dụng khác là gửi ứng dụng nhận URI nội dung của tệp và cấp quyền truy cập tạm thời cho URI đó. URI nội dung có quyền truy cập URI tạm thời được bảo mật vì chúng chỉ áp dụng cho ứng dụng nhận được URI và chúng tự động hết hạn.

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