2017-04-11 23 views
-2

2因子認証でアプリを作成するのに少し問題があります。私はSMSゲートウェイとしてtwilioを使用することに決め、チュートリアルに従うことにしました。しかし、私は問題をsmsのを送信するURLを宣言するときに実行しました。私はすでに、これはどのようにある "mContext"はgetstring(java.lang.string)のメソッドを解決できません

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
import android.content.Context; 
import java.io.IOException; 
import okhttp3.Call; 
import okhttp3.Callback; 
import okhttp3.FormBody; 
import okhttp3.OkHttpClient; 
import okhttp3.Request; 
import okhttp3.RequestBody; 
import okhttp3.Response; 

public class MainActivity extends AppCompatActivity { 

private EditText mTo; 
private EditText mBody; 
private Button mSend; 
private OkHttpClient mClient = new OkHttpClient(); 
private Context mContext; 

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

mTo = (EditText) findViewById(R.id.txtNumber); 
mBody = (EditText) findViewById(R.id.txtMessage); 
mSend = (Button) findViewById(R.id.btnSend); 
mSend.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     try { 

    post(mContext.getString(Integer.parseInt("http://4a61510d.grok.io/sms")), 
new 
    Callback(){ 

       @Override 
       public void onFailure(Call call, IOException e) { 
        e.printStackTrace(); 
       } 

       @Override 
       public void onResponse(Call call, Response response) throws 
    IOException { 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          mTo.setText(""); 
          mBody.setText(""); 
          Toast.makeText(getApplicationContext(),"SMS 
Sent!",Toast.LENGTH_SHORT).show(); 
         } 
        }); 
       } 
      }); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
}); 
mContext = getApplicationContext(); 
} 
Call post(String url, Callback callback) throws IOException { 
RequestBody formBody = new FormBody.Builder() 
     .add("To", mTo.getText().toString()) 
     .add("Body", mBody.getText().toString()) 
     .build(); 
Request request = new Request.Builder() 
     .url(url) 
     .post(formBody) 
     .build(); 
Call response = mClient.newCall(request); 
Response.**enqueue**(callback); 
return response; 
}} 

マイbuild.gradleにも

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{ 
exclude group: 'com.android.support', module: 'support-annotations' 
}) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support.constraint:constraint-layout:1.0.2' 
compile 'com.squareup.okhttp3:okhttp:3.6.0' 

と私のマニフェストXML

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

<application 
android:allowBackup="true" 
android:icon="@mipmap/ic_launcher" 
android:label="@string/app_name" 
android:roundIcon="@mipmap/ic_launcher_round" 
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" /> 
    </intent-filter> 
</activity> 
</application> 

を宣言したにもかかわらず、エラーを取得していますいくつかの理由私はまだ現在のエラーでそれを変更しました

post(mContext.getString("http://4a61510d.ngrok.10/sms"), new Callback(){ 

答えて

0

mContext.getString() & Integer.parseInt(..)方法を取り外し、次のよう

post("http://4a61510d.grok.io/sms", new callback.... 

を試してみてください。あなたが任意のリソース

+0

まだエラーが発生しています – Wshivnarine

+0

これは私が今行っているものです – Wshivnarine

+0

@WshivnarineはmContext.getStringを削除します。私の答えをチェックしてください。 –

0

を使用していないとして、あなたは、この行でエラー

mContext.getString(Integer.parseInt("http://4a61510d.grok.io/sms") 

Integer.parseInt()のみintに値を解析し、あなたがint

0

使用

に文字列を解析しようとしているために使用されたされていますonCreate()メソッドの
mContext = this; 

関連する問題