क्या मेरे एंड्रॉइड ऐप को पुनर्प्राप्त करने और फ़ाइलों के विस्तारित उपयोगकर्ता विशेषताओं को सेट करने का कोई तरीका है? एंड्रॉइड पर java.nio.file.Files
का उपयोग करने का कोई तरीका है? क्या मेरे dalvik ऐप से setfattr
और getfattr
का उपयोग करने का कोई तरीका है? मुझे पता है कि एंड्रॉइड ext4 फाइल सिस्टम का उपयोग करता है, इसलिए मुझे लगता है कि यह संभव होना चाहिए। कोई सुझाव?मैं एंड्रॉइड फ़ाइलों पर विस्तारित उपयोगकर्ता विशेषताओं को कैसे सेट करूं?
उत्तर
एंड्रॉइड जावा लाइब्रेरी और बायोनिक सी लाइब्रेरी इसका समर्थन नहीं करती है। तो आपको इसके लिए लिनक्स सिस्कोल के साथ देशी कोड का उपयोग करना होगा।
एंड्रॉइड 4.2 और एंड्रॉइड 4.4 पर परीक्षण करने के लिए यहां कुछ नमूना कोड दिया गया है।
XAttrNative.java
package com.appfour.example;
import java.io.IOException;
public class XAttrNative {
static {
System.loadLibrary("xattr");
}
public static native void setxattr(String path, String key, String value) throws IOException;
}
xattr.c
#include <string.h>
#include <jni.h>
#include <asm/unistd.h>
#include <errno.h>
void Java_com_appfour_example_XAttrNative_setxattr(JNIEnv* env, jclass clazz,
jstring path, jstring key, jstring value) {
char* pathChars = (*env)->GetStringUTFChars(env, path, NULL);
char* keyChars = (*env)->GetStringUTFChars(env, key, NULL);
char* valueChars = (*env)->GetStringUTFChars(env, value, NULL);
int res = syscall(__NR_setxattr, pathChars, keyChars, valueChars,
strlen(valueChars), 0);
if (res != 0) {
jclass exClass = (*env)->FindClass(env, "java/io/IOException");
(*env)->ThrowNew(env, exClass, strerror(errno));
}
(*env)->ReleaseStringUTFChars(env, path, pathChars);
(*env)->ReleaseStringUTFChars(env, key, keyChars);
(*env)->ReleaseStringUTFChars(env, value, valueChars);
}
इस पर (नकल करते) बाह्य भंडारण जो sdcardfs फाइल सिस्टम या अन्य कर्नेल का उपयोग करता है आंतरिक मेमोरी में ठीक काम करता है, लेकिन नहीं सुविधाओं को अक्षम करने के लिए फ़ंक्शन फ़ैट फ़ाइल सिस्टम जैसे सिम्लिंक और विस्तारित विशेषताओं द्वारा समर्थित नहीं हैं। तर्कसंगत रूप से वे ऐसा इसलिए करते हैं क्योंकि डिवाइस को किसी पीसी से कनेक्ट करके बाह्य संग्रहण का उपयोग किया जा सकता है और उपयोगकर्ताओं को उम्मीद है कि फ़ाइलों को प्रतिलिपि बनाने से सभी जानकारी सुरक्षित रहती है।
तो यह काम करता है:
File dataFile = new File(getFilesDir(),"test");
dataFile.createNewFile();
XAttrNative.setxattr(dataFile.getPath(), "user.testkey", "testvalue");
इस जबकि त्रुटि संदेश के साथ IOException
फेंकता है: "ऑपरेशन परिवहन समाप्ति बिंदु पर समर्थित नहीं":
File externalStorageFile = new File(getExternalFilesDir(null),"test");
externalStorageFile.createNewFile();
XAttrNative.setxattr(externalStorageFile.getPath(), "user.testkey", "testvalue");
- 1. मैं ग्राफविज़ में क्लस्टर फ़ॉन्ट विशेषताओं को कैसे सेट करूं?
- 2. PostgreSQL: मैं उपयोगकर्ता स्तर पर search_path कैसे सेट करूं?
- 3. स्पर्श किए जाने पर मैं छवि को पूर्ण स्क्रीन पर कैसे विस्तारित करूं?
- 4. मैं XML टैग के अंदर विशेषताओं को कैसे टिप्पणी करूं?
- 5. मैं एंड्रॉइड पर रनटाइम पर एक्सएमएल संसाधन कैसे उत्पन्न करूं?
- 6. एंड्रॉइड: मैं लेआउट के लिए textsize कैसे सेट करूं?
- 7. मैं एंड्रॉइड लॉलीपॉप पर विस्तारित ऊंचाई टूलबार/एक्शन बार कैसे घोषित करूं?
- 8. मैं DataAdapter.UpdateBatchSize को "इष्टतम" मान पर कैसे सेट करूं?
- 9. मैं प्रेषक को NSMenuItem की कार्रवाई पर कैसे सेट करूं?
- 10. मैं django रूपों में कस्टम HTML विशेषताओं को कैसे सेट करूं?
- 11. मैं इसे सहेजने से पहले ActiveRecord ऑब्जेक्ट में विशेषताओं को कैसे सेट करूं?
- 12. मैं एंड्रॉइड व्यू पर क्लिक किए गए उपयोगकर्ता को पॉइंट/समन्वय कैसे प्राप्त करूं?
- 13. मैं savon नेस्टेड विशेषताओं का उपयोग कैसे करूं! हैश?
- 14. मैं एंड्रॉइड पर ऑडियो क्षमताओं को कैसे निर्धारित करूं?
- 15. एक विस्तारित उपयोगकर्ता प्रोफ़ाइल
- 16. मैं पाइथन व्हील के अंदर फ़ाइलों को कैसे सूचीबद्ध करूं?
- 17. एप्लिकेशन उपयोगकर्ता विशेषताओं
- 18. प्रतिक्रिया मूल के लिए, मैं एंड्रॉइड पर लॉगिंग स्तर कैसे सेट करूं?
- 19. मैं एंड्रॉइड फोन में प्रॉक्सी कैसे सेट करूं?
- 20. मैं विस्तारित WPF Toolkit ColorPicker कैसे काम करूं?
- 21. मैं एसएसआईएस पैकेज फ़ाइलों को कैसे मर्ज करूं?
- 22. एंड्रॉइड में क्रैशलिटिक्स एपीआई को उपयोगकर्ता जानकारी कैसे सेट करें
- 23. मैं विस्तारित टेक्स्टबॉक्स कैसे बना सकता हूं?
- 24. सी # - मैं "सबको" उपयोगकर्ता कैसे प्राप्त करूं?
- 25. मैं एक HttpClient पर एक डिफ़ॉल्ट उपयोगकर्ता एजेंट कैसे सेट करूं?
- 26. मैं रनटाइम पर किसी विधि में विशेषताओं को कैसे जोड़ूं?
- 27. मैं जेपीनल और उसके बच्चों पर टूलटिप कैसे सेट करूं?
- 28. मैं एक्सकोड में _WebThreadLockFromAnyThread पर प्रतीकात्मक ब्रेकपॉइंट कैसे सेट करूं?
- 29. मैं मैक के लिए Emacs पर फोंट कैसे सेट करूं?
- 30. मैं कुकी कॉन्टेनर को सेवा संदर्भ पर कहां सेट करूं?
क्यों दूसरा एक एक अपवाद फेंकता है? – Blackbelt
क्योंकि Google बाहरी कार्यक्षमता पर काम करने के लिए एफएटी द्वारा समर्थित किसी भी कार्यक्षमता को नहीं चाहता है - नकली या नहीं। इसमें सिम्लिंक, विस्तारित गुण शामिल हैं, ... वे इसे sdcardfs और अन्य कर्नेल कार्यक्षमता के साथ लागू करते हैं। तर्कसंगत रूप से वे ऐसा इसलिए करते हैं क्योंकि डिवाइस को किसी पीसी से कनेक्ट करके बाह्य संग्रहण का उपयोग किया जा सकता है और उपयोगकर्ताओं को उम्मीद है कि फ़ाइलों को प्रतिलिपि बनाने से सभी जानकारी सुरक्षित रहती है। –
अच्छी तरह से यह वास्तव में आपके उत्तर का हिस्सा होना चाहिए – Blackbelt