|
- ÒýÈëAndroidµÄContentResolverºÍUriÀࣺÕⲿ·Ö´úÂëͨ¹ýJavaScriptµÄPackages¶ÔÏóÒýÈëÁËAndroidϵͳÖеÄContentResolverºÍUriÀ࣬ÕâΪºóÐø·ÃÎʶÌÐÅÌṩÁ˱ØÒªµÄAPIÖ§³Ö¡£
- »ñÈ¡µ±Ç°ÉÏÏÂÎĵÄÄÚÈݽâÎöÆ÷£ºÍ¨¹ý
context.getContentResolver() »ñÈ¡µ±Ç°Ó¦ÓõÄContentResolver¶ÔÏó£¬Õâ¸ö¶ÔÏó¿ÉÒÔÓÃÀ´²éѯ¶ÌÐÅÊý¾Ý¿â¡£ - Ö¸¶¨¶ÌÐÅÄÚÈݵÄURI£º
Uri.parse("content://sms/inbox") Ö¸¶¨Òª²éѯµÄ¶ÌÐÅÊý¾Ý¿âµÄURI·¾¶£¬ÕâÀïÖ¸ÏòµÄÊÇÊÕ¼þÏäÖеĶÌÐÅ¡£ - ´´½¨²éѯ×Ö¶ÎÊý×飺¶¨ÒåÒ»¸ö°üº¬4¸öÔªËØµÄ×Ö·û´®Êý×éprojection£¬ÓÃÓÚÖ¸¶¨´Ó¶ÌÐÅÊý¾Ý¿âÖвéѯ³öÄÄЩ×ֶΡ£ÕâЩ×ֶΰüÀ¨¶ÌÐÅID¡¢·¢ËÍÕßµØÖ·¡¢·¢ËÍÈÕÆÚºÍ¶ÌÐÅÄÚÈÝ¡£
- ÉèÖÃÅÅÐò¹æÔò£º
var sortOrder = "date DESC"; ÉèÖÃÁ˲éѯ½á¹ûµÄÅÅÐò¹æÔòΪ°´ÈÕÆÚ½µÐòÅÅÁУ¬ÕâÑù¶ÁÈ¡µ½µÄµÚÒ»Ìõ¼Ç¼¾ÍÊÇ×îеĶÌÐÅ¡£ - Ö´Ðвéѯ²Ù×÷£º
contentResolver.query(...) ·½·¨ÓÃÓÚÖ´Ðвéѯ²Ù×÷£¬·µ»ØÒ»¸öCursor¶ÔÏó£¬Õâ¸ö¶ÔÏó°üº¬Á˲éѯ½á¹ûµÄËùÓмǼ¡£ - ´¦Àí²éѯ½á¹û£º¼ì²éÓαêÊÇ·ñÓÐЧ£¬²¢Òƶ¯µ½µÚÒ»Ìõ¼Ç¼¡£Èç¹ûÓÐЧ£¬»ñÈ¡·¢ËÍÕßµØÖ·ºÍ¶ÌÐÅÄÚÈÝ£¬²¢½«ËüÃÇ×÷Ϊ½á¹û·µ»Ø¡£Èç¹ûûÓвéѯµ½¼Ç¼£¬Ôò·µ»Ø"No SMS found."ÌáʾÐÅÏ¢¡£×îºó£¬È·±£¹Ø±ÕÓαêÒÔÊÍ·ÅÏà¹Ø×ÊÔ´¡£
- Æ¥ÅäÑéÖ¤Â룺ͨ¹ýÒ»¸öÕýÔò±í´ïʽÀ´²éÕÒ¶ÌÐÅÄÚÈÝÖеÄÑéÖ¤Âë¡£ÕâÀï¼ÙÉèÑéÖ¤ÂëÊÇÒÔ¡°¡¾¶ÌÐÅ¡¿¡±¿ªÍ·ºó¸úÒ»×éÊý×ÖµÄÐÎʽ³öÏÖ¡£Ê¹ÓÃ
regex.exec(smsContent) À´Ö´ÐÐÆ¥Åä²Ù×÷£¬Èç¹ûÆ¥Åä³É¹¦£¬ÔòÌáÈ¡³öÑéÖ¤Âë²¢´òÓ¡£»Èç¹ûδÕÒµ½Æ¥Åä½á¹û£¬Ôò´òÓ¡"δÄÜÕÒµ½ÑéÖ¤Âë"µÄÌáʾÐÅÏ¢¡£
/* Õâ¸öÊÇ»ñÈ¡ÊÖ»ú¶ÌÐŵÄÀý×Ó£¬
×î½üºÜ¶àÈËÓÃAIWORKÔõô»ñÈ¡¶ÌÐÅÑéÖ¤Â룬ÕâÑù¾Í²»ÓÃÈ¥´ò¿ª£¬È»ºóÒ»µãÒ»µãµÄ²É¼¯ÁË¡£
ÆäʵAIworkÊÇÓкܱã½ÝµÄ·½Ê½½øÑéÖ¤Âë²É¼¯µÄ£¬±ÈÈçÏÂÃæÕâ¶Î£¬°´Ê±¼äÅÅÐòµÄ¶ÌÐÅÑéÖ¤Â룬ÕâÑù¾Í¿ÉÒԲɼ¯³öÑéÖ¤Â룬
²¢ÇÒ¿ÉÒÔÈ«²¿ÊäÈëÊý×Ö³öÀ´£¬ÓÐÄÄλÅóÓÑÐèÒªÕâ¶Î´úÂëµÄÇë¼ÓȺ»òÊǼÓÎÒQ»ñÈ¡Õâ¶ÎÏֳɵĴúÂë¡£
ÏÂÃæÊÇAIWORKÑÝʾ´úÂë²Ù×÷£º */
// ¶¨ÒåÒ»¸öº¯Êý£¬ÓÃÓÚ¶ÁÈ¡×îеĶÌÐÅ function readLatestSms() { // ÒýÈëAndroidµÄContentResolverºÍUriÀà var ContentResolver = Packages.android.content.ContentResolver; var Uri = Packages.android.net.Uri;
// »ñÈ¡µ±Ç°ÉÏÏÂÎĵÄÄÚÈݽâÎöÆ÷ var contentResolver = context.getContentResolver();
// Ö¸¶¨¶ÌÐÅÄÚÈݵÄURI var smsUri = Uri.parse("content://sms/inbox");
// ´´½¨Ò»¸ö´óСΪ4µÄ×Ö·û´®Êý×飬ÓÃÓÚÖ¸¶¨²éѯµÄ×Ö¶Î var projection = java.lang.reflect.Array.newInstance(java.lang.String, 4); projection[0] = "_id"; // ¶ÌÐÅID projection[1] = "address"; // ¶ÌÐÅ·¢ËÍÕßµØÖ· projection[2] = "date"; // ¶ÌÐÅ·¢ËÍÈÕÆÚ projection[3] = "body"; // ¶ÌÐÅÄÚÈÝ
// °´ÕÕÈÕÆÚ½µÐòÅÅÁÐ var sortOrder = "date DESC";
// ²éѯ¶ÌÐÅÄÚÈÝ var cursor = contentResolver.query(smsUri, projection, null, null, sortOrder);
// ¼ì²éÓαêÊÇ·ñÓÐЧ²¢Òƶ¯µ½µÚÒ»Ìõ¼Ç¼ if (cursor != null && cursor.moveToFirst()) { // »ñÈ¡·¢ËÍÕßµØÖ·ºÍ¶ÌÐÅÄÚÈݵÄË÷Òý var addressIndex = cursor.getColumnIndex("address"); var bodyIndex = cursor.getColumnIndex("body");
// »ñÈ¡·¢ËÍÕßµØÖ·ºÍ¶ÌÐÅÄÚÈÝ var address = cursor.getString(addressIndex); var body = cursor.getString(bodyIndex);
// ·µ»Ø¶ÌÐŵķ¢ËÍÕߺÍÄÚÈÝ return ("From: " + address + ", Content: " + body);
cursor.close(); // ¹Ø±ÕÓαê } else { // Èç¹ûûÓÐÕÒµ½¶ÌÐÅ£¬·µ»ØÌáʾÐÅÏ¢ return ("No SMS found."); } }
// µ÷Óú¯Êý£¬»ñÈ¡×îеĶÌÐÅÄÚÈݲ¢´òÓ¡ printl(readLatestSms());
// »ñÈ¡¶ÌÐÅÄÚÈÝ let smsContent = readLatestSms(); // ´òÓ¡¶ÌÐÅÄÚÈÝ console.log(smsContent);
// ¶¨ÒåÕýÔò±í´ïʽ£¬ÓÃÓÚÆ¥ÅäÑéÖ¤Â루¼ÙÉèÑéÖ¤ÂëÔÚÌØ¶¨¸ñʽµÄ¶ÌÐÅÖУ© let regex = /¡¾ÐÂÀË¡¿(\d+)/; // Ö´ÐÐÕýÔò±í´ïʽƥÅä let match = regex.exec(smsContent);
// Èç¹ûÕÒµ½ÁËÆ¥ÅäµÄÑéÖ¤Âë if (match) { let captchaCode = match[1]; // ÌáÈ¡ÑéÖ¤Âë console.log("ÑéÖ¤ÂëÊÇ:", captchaCode); // ´òÓ¡ÑéÖ¤Âë } else { console.log("δÄÜÕÒµ½ÑéÖ¤Âë"); // Èç¹ûδÕÒµ½£¬´òÓ¡ÌáʾÐÅÏ¢ }
|
|