मैं सीधे टाइटेनियम प्रोजेक्ट (एसडीके 7.0.1.जीए और हाइपरलूप 3 का उपयोग करके) के भीतर एंड्रॉइड हाइपरलूप कोड का एक (मुझे आशा है) सरल बिट की कोशिश कर रहा हूं।

var sysProp = require('android.os.SystemProperties');
var serialNumber = sysProp.get("sys.serialnumber", "none");

लेकिन जब ऐप चलाया जाता है तो यह रिपोर्ट करता है

Requested module not found:android.os.SystemProperties

मुझे लगता है कि यह शायद इस तथ्य के कारण है कि ऐप को संकलित करते समय (क्ली का उपयोग करके) यह रिपोर्ट करता है

hyperloop:generateSources: Skipping Hyperloop wrapper generation, no usage found ...

मेरे पास एक जार में समान कोड है और यदि मैं इसका उपयोग करता हूं तो यह काम करता है, इसलिए मैं सोच रहा हूं कि हाइपरलूप पीढ़ी को ट्रिगर क्यों नहीं किया जा रहा है, क्योंकि मुझे लगता है कि यह मुद्दा है।

क्षमा करें बेहतर समझाया जाना चाहिए था।

यह जार स्रोत है जिसका मैं उपयोग करता हूं, सीरियल नंबर का निष्कर्षण केवल एक उदाहरण था ( मुझे अन्य जानकारी निर्माता विशिष्ट डेटा तक भी पहुंच की आवश्यकता है), मैं देखना चाहता था कि क्या मैं JAR फ़ाइल सहित केवल हाइपरलूप का उपयोग करके JAR कार्यक्षमता को दोहरा सकता हूं। मान लीजिए अगर यह टूटा नहीं है तो इसे ठीक न करें, लेकिन यह देखने के लिए उत्सुक था कि क्या यह किया जा सकता है।

1
Steve 23 पद 2017, 16:26

2 जवाब

सबसे बढ़िया उत्तर

तो @miga से प्रतिक्रिया और कुछ परीक्षण और त्रुटि के साथ, मैं एक समाधान के साथ आया हूं जो वास्तव में अच्छी तरह से काम करता है और आवश्यक विधि प्रतिबिंब करेगा। मेरा नया हाइपरलूप फ़ंक्शन है

function getData(data){

    var result = false;
    var Class = require("java.lang.Class");
    var String = require("java.lang.String");

    var c = Class.forName("android.os.SystemProperties");
    var get = c.getMethod("get", String.class, String.class);
    result = get.invoke(c, data, "Error");
    return result;

}

जहां डेटा सिस्टम प्रॉपर्टी की एक स्ट्रिंग है जो मैं चाहता हूं।

मैं इसका उपयोग सैमसंग डिवाइस से एक सीरियल नंबर निकालने और मिलान करने के लिए कर रहा हूं जो एक सिस्टम प्रॉपर्टी कॉल "ril.serialnumber" या "sys.serialnumber" है। अब मैं उपरोक्त फ़ंक्शन का उपयोग वह करने के लिए कर सकता हूं जिसके लिए मैं JAR फ़ाइल का उपयोग कर रहा था। बस सोचा कि अगर किसी और को भी कुछ ऐसा ही चाहिए तो मैं साझा करूंगा।

2
Steve 24 पद 2017, 16:32

ऐसा इसलिए है क्योंकि android.os.SystemProperties वह वर्ग नहीं है जिसे आप आयात कर सकते हैं। https://developer.android.com/reference पर Android दस्तावेज़ देखें /android/os/package-summary.html

आप इस्तेमाल कर सकते हैं

var build = require('android.os.Build');
console.log(build.SERIAL);

सीरियल नंबर तक पहुंचने के लिए।

0
miga 23 पद 2017, 17:10
धन्यवाद - मैंने अपने प्रश्न में अधिक जानकारी और जार स्रोत जोड़ा है। मैं सर्नो के बगल में अन्य जानकारी तक पहुंचने के लिए जार का उपयोग कर रहा हूं - यह सिर्फ एक उदाहरण था। मैं यह देखने के लिए उत्सुक हूं कि क्या कोड सिर्फ हाइपरलूप का उपयोग करके किया जा सकता है।
 – 
Steve
24 पद 2017, 11:12
देखें stackoverflow.com/a/13059485/5193915 "SystemProperties एक छिपा हुआ वर्ग है जो केवल प्लेटफ़ॉर्म-स्तरीय कोड के लिए उपलब्ध है। " और ऊपर से लिंक जहां यह सूचीबद्ध नहीं है। प्रतिबिंबों के बारे में निश्चित नहीं है
 – 
miga
24 पद 2017, 14:01
मुझे जवाब मिल गया है और यहां पोस्ट किया गया है - मदद के लिए धन्यवाद!
 – 
Steve
24 पद 2017, 16:33