Tôi đã phát triển một ứng dụng Android tương tác với các ứng dụng khác được cài đặt trên thiết bị thông qua tệp sharedpreference.Tùy chọn chia sẻ trên Android trên các ứng dụng khác nhau
Tệp này được tạo dưới dạng MODE.WORLD_READABLE và mọi ứng dụng đã cài đặt đều có tệp riêng với tên và thuộc tính được xác định chung (những thay đổi là giá trị cho thuộc tính cụ thể đó). Ví dụ: App2 và AppB phải có mỗi tệp được chia sẻ có tên là "app_shared_file.xml" với thuộc tính "property_shared_file".
Từ ứng dụng của tôi, tôi muốn truy cập tệp này lần đầu tiên và đọc giá trị thuộc tính đó, và tùy thuộc vào kết quả mà tôi muốn tạo/cập nhật của tôi.
Tuy nhiên, tôi đang gặp một số vấn đề trong việc đạt được điều đó. Trên giấy tờ Android tôi thấy rằng:
Lấy và giữ các nội dung của các ưu đãi nộp 'tên', trả lại một SharedPreferences thông qua đó bạn có thể lấy và sửa đổi giá trị của nó. Chỉ một cá thể của đối tượng SharedPreferences được trả lại cho bất kỳ người gọi nào có cùng tên, nghĩa là họ sẽ thấy các chỉnh sửa của nhau ngay khi chúng được thực hiện.
Sau khi đọc tệp tùy chọn chia sẻ ứng dụng khác, khi tôi cố gắng tạo/cập nhật hệ thống của tôi thay vì chỉnh sửa của tôi, hãy sử dụng cái tôi đã đọc trước đó. Nếu ngược lại, tôi bắt đầu bằng cách cập nhật của tôi và đọc các ứng dụng khác sau này - thay vì đọc một trong những khác, một trong những được truy cập là của tôi.
Mọi suy nghĩ?
Mã Tôi đang sử dụng để đọc pref chia sẻ là [nơi PACKAGENAME là ứng dụng pckg khác]:
Context con = context.createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences pref = con.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_WORLD_READABLE);
pref.getBoolean(SHARED_PREF_PROP, false);
Mã Tôi đang sử dụng cho các văn bản trong ứng dụng chia sẻ pref là:
SharedPreferences prefs= getSharedPreferences(SHARED_PREF_NAME, context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(SHARED_PREF_PROP, value);
editor.commit();
Xin cảm ơn trước.
Có, có hai ứng dụng khác nhau và mỗi ứng dụng có tệp tùy chọn chia sẻ riêng được lưu trữ trên thư mục shared_prefs của riêng chúng. Có, tôi biết tên gói của ứng dụng khác thông qua PackageManager, nhưng tôi không có tùy chọn nào để biết hoạt động/lớp nào sẽ xử lý nó. Tôi đã thấy liên kết đó, vấn đề ở đây là truy cập vào hai phần mở rộng được chia sẻ khác nhau có cùng tên - của riêng tôi và ứng dụng khác. Sau khi mở một, khi tôi cố gắng để mở khác các điểm tham chiếu đến một điểm ban đầu mở và không phải là một trong những gửi như bối cảnh. – user1683087