请帮助,当我运行该应用程序时,该应用程序会启动致命错误即时消息学习
只是我通过电话创建了一个instat但没有运行,(对不起我的英语)
................................................... .....................

我的清单:

<?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.android.octa.appprueba3">

        <uses-permission android:name="android.permission.CALL_PHONE" />
        <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
       android:supportsRtl="true"
        android:theme="@style/AppTheme">
       <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.APP_CONTACTS" />
        </intent-filter>
        </activity>
       <activity android:name=".SecondActivity"></activity>
        </application>

       </manifest>


我的代码:

 public class SecondActivity extends AppCompatActivity {

    private EditText editPhoneText;
     private ImageButton imageCallButton;
    private final int PHONE_CALL_CODE = 100;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    editPhoneText = (EditText) findViewById(R.id.editTextPhone);
    imageCallButton = (ImageButton) findViewById(R.id.imageCallButton1);

    imageCallButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            implicito();
        }
    });
}

    public void implicito(){

        Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("Tel: 9999999" ));
        startActivity(intent);

}
}

最佳答案

您可能需要检查设备是否可以通过以下方法处理您的意图:

PackageManager packageManager = getPackageManager();
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent);
} else {
     Log.d(TAG, "Cannot handle this intent");
}


而且,如果您像这样拨打电话,则无需在清单中声明许可:

<uses-permission android:name="android.permission.CALL_PHONE" />


因为您不是直接在您的应用程序中致电某人。您实际上是在将“职责”转移到可以处理您的通话意图的其他应用程序。不需要权限。

要直接在您的应用中拨打电话,意图应为Intent.ACTION_CALL,需要您声明的权限。

希望这会有所帮助。

10-05 21:05
查看更多