En permettant le partage de connexion USB par programme - là est une application qu'il a fait pour 2.3
J'ai lu beaucoup de questions ici AFIN de vous demander comment activer le partage de connexion USB par programmation.
La réponse est toujours la même, les applications ordinaires ne peuvent pas le faire, seulement le système apps.
Encore pour 2,3 vous pouvez télécharger une application sur le marché qui permettrait de le faire pour vous.
https://play.google.com/store/apps/details?id=org.tdtran.autousbtethering
Sur ICS (Android 4.0.3) il ne fonctionne plus.
Comment ils le font pour la 2.3? Est-il possible également pour la version 4.0?
- "La réponse est toujours la même, les applications ordinaires ne peuvent pas le faire, système d'applications." -- Avec plus de précision, il n'y a rien dans le SDK Android pour gérer le partage de connexion USB.
- Oui, comment un app réussi à le faire? Il peut ne pas être dans le SDK, mais c'est certainement possible! C'était un sale tour? Un exploit? Peut-être que cela a été corrigé dans la version 4.0?
Vous devez vous connecter pour publier un commentaire.
en utilisant le code suivant, vous pouvez activer le partage de connexion USB. je did't le test de la version 4.0.
ICS et ci-dessus: Pour exécuter la méthode de réflexion, la demande exige la
WRITE_SECURE_SETTINGS
autorisation.Ce n'est pas disponible à moins que le téléphone est enracinée.
puisque c'est l'un des plus populaires des pages dans les résultats de Google pour ce sujet, j'aimerais contribuer à mon code qui est en train de vérifier les interfaces disponibles. Il fonctionne sur un pain d'épice téléphone, que j'ai, mais pas de mon Galaxy S3.
Sur Samsumg Galaxy Tab 2 10.1 l'interface n'est pas appelé "usb0" mais "rndis0". Peut-être que c'est la même chose pour le Galaxy SII
Le port "rndis0" est activé de façon dynamique pas disponible dans la la Tetherable liste d'interfaces.
Il est ajouté lorsque l'utilisateur sélectionne l'option partage de connexion USB dans le menu.
La fonction ConnectivityManager::setUsbTethering(bool) est appelée lorsque l'option est sélectionnée. Et cet appel de fonction est autorisée uniquement pour les applications du Système.
Je sais que je suis un vieux thread mais j'espère que cela pourrait aider d'autres personnes dans le futur ,
Que le code a fonctionné pour moi dans Android 4.4(avec les privilèges de root)
code:
l'astuce consiste à utiliser la réflexion , la méthode qui change de l'usb tethring est appelé "setUsbTethering"
J'ai l'habitude d'écrire l'ensemble de la classe, mais voici ce dont vous avez besoin:
vous pouvez imprimer l'ensemble des méthodes de la classe en utilisant le code suivant
alors appel
printClassMethod(ConnectivityManager.class)
De plus, vous pouvez aller sur la classe elle-même et de vérifier les méthodes et les arguments nécessaires.
pour obtenir les choses fonctionnent:
vous devez définir votre application Système d'application,
Déclarer dans le manifeste : android:sharedUserId="android.uid.système"
ajouter de l'écriture de l'obtention d'une autorisation
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"
Signer l'apk à l'aide de google de clé de certificat(apk-avec le système de privilèges) et poussez-la dans /system/app
L'esprit, que usbTethering est activée lorsque l'USB est attaché, donc une meilleure solution sera de vous inscrire pour les deux USB_STATE et USB_ATTACH et l'activer/la désactiver en conséquence dans la Méthode onReceive. (Partage de connexion USB est automatiquement désactivée lorsque l'USB est de-jointe)