android.content.Intent#getParcelableArrayExtra ( )源码实例Demo

下面列出了android.content.Intent#getParcelableArrayExtra ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: NaviBee   文件: AddFriendQRActivity.java
private void handleNfcIntent(Intent NfcIntent) {
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(NfcIntent.getAction())) {
        Parcelable[] receivedArray =
                NfcIntent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

        if(receivedArray != null) {
            NdefMessage receivedMessage = (NdefMessage) receivedArray[0];
            NdefRecord[] attachedRecords = receivedMessage.getRecords();

            for (NdefRecord record: attachedRecords) {
                String string = new String(record.getPayload());
                // Make sure we don't pass along our AAR (Android Application Record)
                if (string.equals(getPackageName())) continue;
                addFriend(string);
            }
        }
    }
}
 
源代码2 项目: android-nfc-lib   文件: NfcReadUtilityImpl.java
/**
 * {@inheritDoc}
 */
@Override
public SparseArray<String> readFromTagWithSparseArray(Intent nfcDataIntent) {
    Parcelable[] messages = nfcDataIntent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

    SparseArray<String> resultMap = messages != null ? new SparseArray<String>(messages.length) : new SparseArray<String>();

    if (messages == null) {
        return resultMap;
    }

    for (Parcelable message : messages) {
        for (NdefRecord record : ((NdefMessage) message).getRecords()) {
            byte type = retrieveTypeByte(record.getPayload());

            String i = resultMap.get(type);
            if (i == null) {
                resultMap.put(type, parseAccordingToType(record));
            }
        }
    }

    return resultMap;
}
 
源代码3 项目: android-nfc   文件: ReadTextActivity.java
/**
 * 读取NFC标签文本数据
 */
private void readNfcTag(Intent intent) {
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
                NfcAdapter.EXTRA_NDEF_MESSAGES);
        NdefMessage msgs[] = null;
        int contentSize = 0;
        if (rawMsgs != null) {
            msgs = new NdefMessage[rawMsgs.length];
            for (int i = 0; i < rawMsgs.length; i++) {
                msgs[i] = (NdefMessage) rawMsgs[i];
                contentSize += msgs[i].toByteArray().length;
            }
        }
        try {
            if (msgs != null) {
                NdefRecord record = msgs[0].getRecords()[0];
                String textRecord = parseTextRecord(record);
                mTagText += textRecord + "\n\ntext\n" + contentSize + " bytes";
            }
        } catch (Exception e) {
        }
    }
}
 
源代码4 项目: newsApp   文件: FeedsActivity.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == INTENT_REQUEST_GET_IMAGES) {
            Parcelable[] parcelableUris = intent.getParcelableArrayExtra(ImagePickerActivity.EXTRA_IMAGE_URIS);

            if (parcelableUris == null) {
                return;
            }

            // Java doesn't allow array casting, this is a little hack
            Uri[] uris = new Uri[parcelableUris.length];
            System.arraycopy(parcelableUris, 0, uris, 0, parcelableUris.length);

            if (uris != null) {
                hitCreateNewsApi(uris[0]);
            }
        }
    }
}
 
源代码5 项目: newsApp   文件: UploadNewsActivity.java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == INTENT_REQUEST_GET_IMAGES) {
            Parcelable[] parcelableUris = intent.getParcelableArrayExtra(ImagePickerActivity.EXTRA_IMAGE_URIS);

            if (parcelableUris == null) {
                return;
            }

            // Java doesn't allow array casting, this is a little hack
            Uri[] uris = new Uri[parcelableUris.length];
            System.arraycopy(parcelableUris, 0, uris, 0, parcelableUris.length);

            if (uris != null) {
                uri = uris[0];
                ivNewsImage.setImageURI(uri);
            }
        }
    }
}
 
@Override
protected void onResponseReceived(final Intent request, final Intent response) {
    // エラーが返ってきた場合には、サービスには登録しない。
    int result = response.getIntExtra(IntentDConnectMessage.EXTRA_RESULT, -1);
    if (result == IntentDConnectMessage.RESULT_OK) {
        // 送られてきたサービスIDにデバイスプラグインのIDを付加して保存
        Parcelable[] services = response.getParcelableArrayExtra(
                ServiceDiscoveryProfileConstants.PARAM_SERVICES);
        if (services != null) {
            for (Parcelable p : services) {
                Bundle b = (Bundle) p;
                String id = b.getString(ServiceDiscoveryProfile.PARAM_ID);
                b.putString(ServiceDiscoveryProfile.PARAM_ID, mPluginMgr.appendServiceId(mDevicePlugin, id));
                mServices.add(b);
            }
        }
    }

    // レスポンス個数を追加
    synchronized (mRequestCodeArray) {
        mRequestCodeArray.remove(mRequestCode);
    }
    mCountDownLatch.countDown();
}
 
源代码7 项目: fdroidclient   文件: RepoDetailsActivity.java
private void processIntent(Intent i) {
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(i.getAction())) {
        Parcelable[] rawMsgs = i.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
        NdefMessage msg = (NdefMessage) rawMsgs[0];
        String url = new String(msg.getRecords()[0].getPayload());
        Utils.debugLog(TAG, "Got this URL: " + url);
        Toast.makeText(this, "Got this URL: " + url, Toast.LENGTH_LONG).show();
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        intent.setClass(this, ManageReposActivity.class);
        startActivity(intent);
        finish();
    }
}
 
NdefMessage[] getNdefMessages(Intent intent) {
    // Parse the intent
    NdefMessage[] msgs = null;
    String action = intent.getAction();
    if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)
            || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
        Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
        if (rawMsgs != null) {
            msgs = new NdefMessage[rawMsgs.length];
            for (int i = 0; i < rawMsgs.length; i++) {
                msgs[i] = (NdefMessage) rawMsgs[i];
            }
        } else {
            // Unknown tag type
            byte[] empty = new byte[] {};
            NdefRecord record = new NdefRecord(NdefRecord.TNF_UNKNOWN, empty, empty, empty);
            NdefMessage msg = new NdefMessage(new NdefRecord[] {
                record
            });
            msgs = new NdefMessage[] {
                msg
            };
        }
    } else {
        Log.d(TAG, "Unknown intent.");
        finish();
    }
    return msgs;
}
 
源代码9 项目: timelapse-sony   文件: NFCHandler.java
public static Pair<String, String> parseIntent(Intent intent) throws Exception {

        Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        Parcelable[] messages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

        if (tagFromIntent != null && messages != null) {
            return getCameraWifiSettingsFromTag(tagFromIntent, messages);
        }

        return null;
    }
 
源代码10 项目: container   文件: ChooserActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
    Intent intent = getIntent();
    int userId = intent.getIntExtra(Constants.EXTRA_USER_HANDLE, VUserHandle.getCallingUserId());
    mOptions = intent.getParcelableExtra(EXTRA_DATA);
    mResultWho = intent.getStringExtra(EXTRA_WHO);
    mRequestCode = intent.getIntExtra(EXTRA_REQUEST_CODE, 0);
    Parcelable targetParcelable = intent.getParcelableExtra(Intent.EXTRA_INTENT);
    if (!(targetParcelable instanceof Intent)) {
        VLog.w("ChooseActivity", "Target is not an intent: " + targetParcelable);
        finish();
        return;
    }
    Intent target = (Intent) targetParcelable;
    CharSequence title = intent.getCharSequenceExtra(Intent.EXTRA_TITLE);
    if (title == null) {
        title = getString(R.string.choose);
    }
    Parcelable[] pa = intent.getParcelableArrayExtra(Intent.EXTRA_INITIAL_INTENTS);
    Intent[] initialIntents = null;
    if (pa != null) {
        initialIntents = new Intent[pa.length];
        for (int i = 0; i < pa.length; i++) {
            if (!(pa[i] instanceof Intent)) {
                VLog.w("ChooseActivity", "Initial intent #" + i
                        + " not an Intent: " + pa[i]);
                finish();
                return;
            }
            initialIntents[i] = (Intent) pa[i];
        }
    }
    super.onCreate(savedInstanceState, target, title, initialIntents, null, false, userId);
}
 
源代码11 项目: AndroidChromium   文件: IntentUtils.java
/**
 * Just like {@link Intent#getParcelableArrayExtra(String)} but doesn't throw exceptions.
 */
public static Parcelable[] safeGetParcelableArrayExtra(Intent intent, String name) {
    try {
        return intent.getParcelableArrayExtra(name);
    } catch (Throwable t) {
        Log.e(TAG, "getParcelableArrayExtra failed on intent " + intent);
        return null;
    }
}
 
private String readNfcTagPayload(Intent intent) {
    Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
    if (rawMsgs != null) {
        NdefMessage[] msgs = new NdefMessage[rawMsgs.length];
        for (int i = 0; i < rawMsgs.length; i++) {
            msgs[i] = (NdefMessage) rawMsgs[i];
        }

        return new String(msgs[0].getRecords()[0].getPayload());
    }

    return null;
}
 
源代码13 项目: 365browser   文件: IntentUtils.java
/**
 * Just like {@link Intent#getParcelableArrayExtra(String)} but doesn't throw exceptions.
 */
public static Parcelable[] safeGetParcelableArrayExtra(Intent intent, String name) {
    try {
        return intent.getParcelableArrayExtra(name);
    } catch (Throwable t) {
        Log.e(TAG, "getParcelableArrayExtra failed on intent " + intent);
        return null;
    }
}
 
源代码14 项目: PhoneProfilesPlus   文件: NFCTagReadWriteManager.java
private void readTagFromIntent(Intent intent) {
    if (intent != null){
        String action = intent.getAction();

        /*if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)) {
            uidRead = true;

            String uid = ByteArrayToHexString(intent.getByteArrayExtra(NfcAdapter.EXTRA_ID));
            onTagReadListener.onUidRead(uid);
        }*/
        if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
            tagRead = true;

            // get NDEF tag details
            Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
            if (tag != null) {
                Ndef ndefTag = Ndef.get(tag);
                //int tagSize = ndefTag.getMaxSize();         // tag size
                tagIsWritable = ndefTag.isWritable();   // is tag writable?
                //String tagType = ndefTag.getType();            // tag type

                Parcelable[] rawMessages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
                if (rawMessages != null) {
                    NdefRecord[] records = ((NdefMessage) rawMessages[0]).getRecords();
                    String text = ndefRecordToString(records[0]);
                    onTagReadListener.onTagRead(text);
                }
            }
        }
    }
}
 
@TargetApi(VERSION_CODES.M)
private void updateRestrictionEntryFromResultIntent(RestrictionEntry restrictionEntry,
        Intent intent) {
    switch (restrictionEntry.getType()) {
        case RestrictionEntry.TYPE_BOOLEAN:
            restrictionEntry.setSelectedState(intent.getBooleanExtra(RESULT_VALUE, false));
            break;
        case RestrictionEntry.TYPE_INTEGER:
            restrictionEntry.setIntValue(intent.getIntExtra(RESULT_VALUE, 0));
            break;
        case RestrictionEntry.TYPE_STRING:
            restrictionEntry.setSelectedString(intent.getStringExtra(RESULT_VALUE));
            break;
        case RestrictionEntry.TYPE_MULTI_SELECT:
            restrictionEntry.setAllSelectedStrings(intent.getStringArrayExtra(RESULT_VALUE));
            break;
        case RestrictionEntry.TYPE_BUNDLE: {
            Bundle bundle = intent.getBundleExtra(RESULT_VALUE);
            restrictionEntry.setRestrictions(convertBundleToRestrictions(bundle));
            break;
        }
        case RestrictionEntry.TYPE_BUNDLE_ARRAY: {
            Parcelable[] bundleArray = intent.getParcelableArrayExtra(RESULT_VALUE);
            RestrictionEntry[] restrictionEntryArray = new RestrictionEntry[bundleArray.length];
            for (int i = 0; i< bundleArray.length; i++) {
                restrictionEntryArray[i] = RestrictionEntry.createBundleEntry(String.valueOf(i),
                        convertBundleToRestrictions((Bundle) bundleArray[i]));
            }
            restrictionEntry.setRestrictions(restrictionEntryArray);
            break;
        }
    }
}
 
源代码16 项目: green_android   文件: MnemonicActivity.java
private static byte[] getNFCPayload(final Intent intent) {
    final Parcelable[] extra = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
    return ((NdefMessage) extra[0]).getRecords()[0].getPayload();
}
 
源代码17 项目: geopaparazzi   文件: UploadFileIntentService.java
@Override
protected void onHandleIntent(Intent intent) {
    resultReceiver = intent.getParcelableExtra(UploadResultReceiver.EXTRA_KEY);
    Parcelable[] uploadItems = intent.getParcelableArrayExtra(UploadResultReceiver.EXTRA_FILES_KEY);

    Bundle extras = intent.getExtras();
    String user = extras.getString(PREFS_KEY_USER);
    String password = extras.getString(PREFS_KEY_PWD);

    try {
        String action = intent.getAction();
        if (action != null && action.equals(UploadResultReceiver.UPLOAD_ACTION)) {

            updateBundle = new Bundle();
            for (Parcelable p : uploadItems) {
                if (p instanceof IUploadable) {
                    IUploadable uploadable = (IUploadable) p;
                    if (isCancelled) {
                        sendError(getString(R.string.upload_Canceled));
                        return;
                    }

                    File sourceFile = new File(uploadable.getDestinationPath());
                    if (!sourceFile.exists()) {
                        updateBundle.putString(PROGRESS_MESSAGE_KEY, getString(R.string.upload_NotFound) + sourceFile.getName());
                        resultReceiver.send(UploadResultReceiver.RESULT_CODE, updateBundle);
                        pause();
                        continue;
                    }

                    String url = uploadable.getUploadUrl();
                    updateBundle.putString(PROGRESS_MESSAGE_KEY, getString(R.string.upload_Uploading) + sourceFile.getName());
                    updateBundle.putInt(PROGRESS_KEY, 0);
                    resultReceiver.send(UploadResultReceiver.RESULT_CODE, updateBundle);
                    try {
                        String response = sendFileViaPost(url, sourceFile, "document", user, password);
                        updateBundle.putInt(PROGRESS_KEY, max);
                        resultReceiver.send(UploadResultReceiver.RESULT_CODE, updateBundle);
                        pause();
                    } catch (Exception e) {
                        sendError(getString(R.string.upload_Error) + e.getLocalizedMessage());
                        return;
                    } finally {
                        if (GPLog.LOG)
                            GPLog.addLogEntry("UploadFile", getString(R.string.upload_Uploaded) + sourceFile.getName());
                    }
                }
            }
        }
        sendDone();
    } finally {
        isCancelled = false;
    }
}
 
源代码18 项目: Camera-Roll-Android-App   文件: FileOperation.java
public static File_POJO[] getFiles(Intent workIntent) {
    Parcelable[] parcelables = workIntent.getParcelableArrayExtra(FILES);
    return File_POJO.generateArray(parcelables);
}
 
源代码19 项目: GreenBits   文件: MnemonicActivity.java
private static byte[] getNFCPayload(final Intent intent) {
    final Parcelable[] extra = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
    return ((NdefMessage) extra[0]).getRecords()[0].getPayload();
}
 
源代码20 项目: external-nfc-api   文件: IntentConverter.java
public static Intent convert(Intent input) {

        Intent output = new Intent();

        output.setAction(input.getAction());

        // detect supported types
        if(input.hasExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)) {

            Parcelable[] messages = input.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);

            Bundle extras = new Bundle();
            extras.putParcelableArray(NfcAdapter.EXTRA_NDEF_MESSAGES, messages);

            output.putExtras(extras);
        }

        if(input.hasExtra(NfcAdapter.EXTRA_TAG)) {
            android.nfc.Tag tag = (android.nfc.Tag) input.getParcelableExtra(NfcAdapter.EXTRA_TAG);

            output.putExtra(NfcAdapter.EXTRA_TAG, new TagWrapper(tag));
        }

        if(input.hasExtra(NfcAdapter.EXTRA_AID)) {
            output.putExtra(NfcAdapter.EXTRA_AID, input.getParcelableExtra(NfcAdapter.EXTRA_AID));
        }


        if(input.hasExtra(NfcAdapter.EXTRA_ID)) {
            byte[] id = input.getByteArrayExtra(NfcAdapter.EXTRA_ID);

            output.putExtra(NfcAdapter.EXTRA_ID, id);
        }

        // TODO forward all types

        return output;
    }
 
 方法所在类
 同类方法