2016-09-11 4 views
1

私は最近、単に番号を呼び出すアンドロイドアプリを作ろうとしています。私は、次のコード.main活動を思い付いた:私は私のギャラクシー注5に、このアプリを実行し、呼び出しボタン、アプリのクラッシュをクリックしたときにandoirdで簡単な通話アプリを作成する

package com.example.irdeesmughal.callapp; 

import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity 
{ 

public void call() 
{ 
    Intent callIntent = new Intent(Intent.ACTION_CALL); 
    callIntent.setData(Uri.parse("tel:03335975321")); 
    try{ 
     startActivity(callIntent); 
    } 

    catch (android.content.ActivityNotFoundException ex){ 
     Toast.makeText(getApplicationContext(),"yourActivity is not founded", Toast.LENGTH_SHORT).show(); 
    } 

} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

問題がこれで私を助けてください...です。 アンドロイドのmanifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.irdeesmughal.callapp"> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<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" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

+1

ポストをログトレース –

+0

xmlのボタンにコール関数を添付しましたか? – Marat

+0

はい@マラット私はボタンで関数をアタッチしました。 –

答えて

0

あなたはあなたの呼び出し方法でこれを入れてandroud 6.0+ Documentation

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) == 
     PackageManager.PERMISSION_GRANTED){ 
    Intent callIntent = new Intent(Intent.ACTION_CALL); 
    callIntent.setData(Uri.parse("tel:" + phoneNumber)); 
    startActivity(callIntent); 
} else { 
    snackWithOk(R.string.please_enable_call_permission); 
} 
0

上のランタイム許可を要求する必要があるかもしれないのに役立ちます:

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setData(Uri.parse("tel:03335975321")); 
try 
{ 
    startActivity(callIntent); 
} 
catch (Exception e) 
{ 
    e.printStackTrace(); 
} 
関連する問題