2 xiaoyaovsxin xiaoyaovsxin 于 2013.01.15 16:43 提问

联系人有android.permission.CALL_PRIVILEGED权限为什么还会报这个错??

android4.0.4的contacts有android.permission.CALL_PRIVILEGED这个权限,为什么还会报:

    java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL_PRIVILEGED dat=tel:xxx flg=0x10000000 cmp=com.android.phone/.PrivilegedOutgoingCallBroadcaster (has extras) } from ProcessRecord{41878ad0 3991:com.android.contacts/10000} (pid=3991, uid=10000) requires android.permission.CALL_PRIVILEGED?

哪些大侠知道?

public void dialButtonPressed() {
        if (isDigitsEmpty()) { // No number entered.
            if (phoneIsCdma() && phoneIsOffhook()) {
                // This is really CDMA specific. On GSM is it possible
                // to be off hook and wanted to add a 3rd party using
                // the redial feature.
                startActivity(newFlashIntent());
            } else {
                if (!TextUtils.isEmpty(mLastNumberDialed)) {
                    // Recall the last number dialed.
                    mDigits.setText(mLastNumberDialed);

                    // ...and move the cursor to the end of the digits string,
                    // so you'll be able to delete digits using the Delete
                    // button (just as if you had typed the number manually.)
                    //
                    // Note we use mDigits.getText().length() here, not
                    // mLastNumberDialed.length(), since the EditText widget now
                    // contains a *formatted* version of mLastNumberDialed (due to
                    // mTextWatcher) and its length may have changed.
                    mDigits.setSelection(mDigits.getText().length());
                } else {
                    // There's no "last number dialed" or the
                    // background query is still running. There's
                    // nothing useful for the Dial button to do in
                    // this case.  Note: with a soft dial button, this
                    // can never happens since the dial button is
                    // disabled under these conditons.
                    playTone(ToneGenerator.TONE_PROP_NACK);
                }
            }
        } else {
            final String number = mDigits.getText().toString();

            // "persist.radio.otaspdial" is a temporary hack needed for one carrier's automated
            // test equipment.
            // TODO: clean it up.
            if (number != null
                    && !TextUtils.isEmpty(mProhibitedPhoneNumberRegexp)
                    && number.matches(mProhibitedPhoneNumberRegexp)
                    && (SystemProperties.getInt("persist.radio.otaspdial", 0) != 1)) {
                Log.i(TAG, "The phone number is prohibited explicitly by a rule.");
                if (getActivity() != null) {
                    DialogFragment dialogFragment = ErrorDialogFragment.newInstance(
                                    R.string.dialog_phone_call_prohibited_title);
                    dialogFragment.show(getFragmentManager(), "phone_prohibited_dialog");
                }

                // Clear the digits just in case.
                mDigits.getText().clear();
            } else {
                final Intent intent = newDialNumberIntent(number);
                if (getActivity() instanceof DialtactsActivity) {
                    intent.putExtra(DialtactsActivity.EXTRA_CALL_ORIGIN,
                            DialtactsActivity.CALL_ORIGIN_DIALTACTS);
                }
                startActivity(intent);
                mDigits.getText().clear();  // TODO: Fix bug 1745781
                getActivity().finish();
            }
        }
    }

2个回答

cytown
cytown   2013.01.16 09:05
已采纳

你是修改了Contacts么?如何操作的?是要自制rom?

修改了Contacts以后,要使用本身系统的签名,既然是自制rom,如何签名你应该知道。

签名完成后,要push进system/app然后重启,如果有必要,需要wipe data。原因在于你如果权限更改了,system/app里面的应用有的系统是不会更改权限的,需要重新建立权限列表,所以需要wipe data。

xiaoyaovsxin
xiaoyaovsxin 3Q
接近 5 年之前 回复
xiaoyaovsxin
xiaoyaovsxin 修改了Contacts后,重新打包和签名后,再安装上apk,此时拨号就会报这个错,为什么?
接近 5 年之前 回复
xiaoyaovsxin
xiaoyaovsxin 嗯,是的?请问,你有什么好的方法吗?
接近 5 年之前 回复
CSDN_Ask
CSDN_Ask   2013.01.16 16:22

AndroidManifest.xml 中添加 android.permission.CALL_PRIVILEGED

<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
xiaoyaovsxin
xiaoyaovsxin 都加了的。
接近 5 年之前 回复
CSDN_Ask
CSDN_Ask 看你评论中你加了android.permission.CALL_PHONE"权限,现在是"android.permission.CALL_PRIVILEGED",也加了吗?
接近 5 年之前 回复
xiaoyaovsxin
xiaoyaovsxin 这个权限是有的。
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片