0

このコードでどこにも接続できない理由がわかりません: (ping は 2 を返します)

public class PhoneGapProjActivity extends DroidGap {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Runtime runtime = Runtime.getRuntime();
    Process proc;
    proc = runtime.exec("ping www.google.com -c 1");
    proc.waitFor();

    Log.d("someTag", "exitValue(): " + proc.exitValue());
    ...
}

権限は次のとおりです。

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
4

3 に答える 3

2

マニフェストの下で(直接の子として)アクセス許可を定義します。例えば:

<manifest>
   ...
   <uses-permission android:name="android.permission.INTERNET" />
   ...
</manifest>
于 2012-06-18T16:03:42.757 に答える
1

Waqas が言ったように、パーミッションはタグの外側で宣言する必要があります。

それに加えて、android でのpingの実装には、問題を引き起こす可能性のある奇妙な特性があります。オプションはターゲット ホストの前に定義する必要があるため、受け入れられませんが、受け入れられます。ping www.stackoverflow.com -c 1ping -c 1 www.stackoverflow.com

これがすべての Android フォンでの動作であるとは断言できませんが、ストック ビルドの Galaxy S2 とシアンを実行する Nexus S での動作です。

于 2012-06-18T16:34:33.350 に答える
0

マニフェスト ファイルに次のアクセス許可を追加するだけです

  <uses-permission android:name="android.permission.INTERNET" />
于 2012-06-18T17:06:10.547 に答える