2016-11-29 2 views
1

私はアンドロイドスタジオで初めてです。私は私の大学のプロジェクトに取り組んでいます。私は私のアプリでこの機能をしたいので、このサンプルアプリケーションを呼び出しました。しかし、問題があるようです。それは、私が最初にユーザーから電話をかける許可を求めることであり、それを行う方法はわかりません。誰も私にこれを助けることができますか?ボタンから電話をかけたいが、このエラーはダイアログボックスに表示される

これはJavaコードです。 MainActivity.java

package example.call; 

import android.content.Intent; 
import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 
    private Button button; 

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

     button = (Button)findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("197")); 
       startActivity(callIntent); 
      } 
     }); 
    } 
} 

これは私が誤って得るものです:

enter image description here

+0

...連絡先にアクセスして、インターネットにアクセスして、呼び出しのようなものを行うことができるようになる前に、ユーザーからの許可を必要とするこれを見てhttps://developer.android.com/ training/permissions/requesting.htmlおよびhttp://stackoverflow.com/questions/33666071/android-marshmallow-request-permission?answertab=active#tab-topを参照してください。 Android 6.0には実行時のアクセス許可が必要です –

+0

簡単な方法:そのエラーの上にカーソルを置くだけで、Androidのスタジオはそのエラーを処理する方法を提案します。 – CopsOnRoad

答えて

0
 Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:197")); 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { 
     // TODO: Consider calling 
     // ActivityCompat#requestPermissions 
     // here to request the missing permissions, and then overriding 
     // public void onRequestPermissionsResult(int requestCode, String[] permissions, 
     //           int[] grantResults) 
     // to handle the case where the user grants the permission. See the documentation 
     // for ActivityCompat#requestPermissions for more details. 
     return; 
    } 
    startActivity(callIntent); 

は(スタジオ自体から扱い)このパーミッションチェックを追加します。また、電話番号の前に「tel:」を追加します。それ以外の場合は、エラーが発生する可能性があります。

0

アプリ内のAndroidManifestファイルのアクセス許可に次の行を追加します。アンドロイドで

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

あなたは

関連する問題